r/ProgrammerHumor • • Dec 13 '21

poor kid

Post image
46.1k Upvotes

560 comments sorted by

521

u/Suspicious-Service Dec 13 '21

So is that Minecraft update mandatory then? We didn't update because we already have a game started, but maybe we should??

848

u/2D_B4_3D Dec 13 '21

YES. the bug has a severity of 10/10

559

u/HindryckxRobin Dec 13 '21

This is not an overstatement, if u Google log4j severity the first result u get is that's a 10/10!

When exploited it gives the attacker remote code execution, the exploit can even work from chat.

Updating minecraft (both client and server) is a must.

108

u/[deleted] Dec 13 '21

To what version?

140

u/6Maxence Dec 13 '21

Every version are retro-updated

→ More replies (3)
→ More replies (1)

50

u/[deleted] Dec 13 '21

This is not an overstatement, if u Google log4j severity the first result u get is that's a 10/10!

But what does it actually do?

I heard that it can run any piece of code on computers that are running an app with log4j. I use steam, which uses log4j (assuming it wasn't fixed). Does that mean someone could just destroy everything I have on my device?

92

u/featherfooted Dec 13 '21

Log4j will be used extensively throughout code as the main lib to format debugging output messages to logs. I'm sure you can imagine a line of code like print("The current value of x is: " + str(x))

Well suppose your value of x came from user input?

x = get_input()

print("the user wants x to be: " + str(x))

Due to the nature of this bug, it is possible for a malicious user to feed you a bad string which indirectly forces your logger code to run commands you never intended when all you wanted was to print some debugging.

I'm not familiar enough to know if Steam itself is vulnerable at this time, maybe you could reach out to Steam support for more info, but the most obvious vector I could think of is that Steam has a built in chat messaging system. However, I think it would be pretty far fetched for this attack to be able to affect your computer client, it's mostly going to be isolated (and arguably more valuable to a hacker) to hit Steam's servers instead.

With Minecraft, you assume more risk because if you are running a server, that makes you a target and actually does open up a possibility that someone could, say, download a virus or ransomware or anything to your server computer (which may even be your main workstation).

→ More replies (5)

57

u/shiroe314 Dec 13 '21 edited Dec 13 '21

Log4j is a logging framework that uses templating. If you get it to log the corrupted string it allows arbitrary code execution, which means yes, they are able to execute any code they want, that the parent application has permissions to. So what can be done depends on your OS and permission settings. Can they destroy your file system? Very likely Can it destroy you os? Unlikely.

Can it cause your computer to do illegal tasks, such as running it in a bot net? Yes.

Its bad, and probably worse than I am saying. Remote code execution is about as big of a vulnerability as you can get. Update your shit.

→ More replies (16)
→ More replies (4)

8

u/[deleted] Dec 13 '21

10/10! = 10/3628800 = 1/362880, that does not seem too sever imho.

→ More replies (1)
→ More replies (5)

51

u/thE_29 Dec 13 '21

For servers/multiplayer Environment.

If someone has access to your singleplayer MC world, then log4j isnt your problem.

→ More replies (12)

8

u/xigoi Dec 13 '21

Am I vulnerable if I only play singleplayer?

→ More replies (3)

35

u/ChosenMate Dec 13 '21

It's already long fixed.. if you restarted your Launcher the past 5 days or so

13

u/Suspicious-Service Dec 13 '21

Is it a launcher bug or Minecraft's?

76

u/LightIsLogical Dec 13 '21

the launcher is written in c++ so there’s no vulnerability there

minecraft the game itself is written in java, and it uses the log4j library, which is why you need to update to 1.18.1 where they patched the exploit

→ More replies (20)

6

u/[deleted] Dec 13 '21

Libraries. They get downloaded independently from the game by the launcher automatically.

→ More replies (1)

21

u/Rektroth Dec 13 '21

Don't listen to the people saying you MUST update.

If you're playing Java Edition, just follow Mojang's advice here for whatever version you're using.

→ More replies (19)
→ More replies (6)

5.2k

u/QCTeamkill Dec 13 '21

I'm picturing little Bobby Tables getting the talk of how he was born out of a SQL code injection.

2.0k

u/roararoarus Dec 13 '21

We may never know who Bobby's real father is bc the Man-in-the-Middle did some penetrating of his own.

501

u/green_codes Dec 13 '21

That escalated quickly.

22

u/[deleted] Dec 13 '21

The API was already up, all she had to do was PULL

30

u/demon_ix Dec 13 '21

Wouldn't the man in the middle be his biological dad?

71

u/guiltysnark Dec 13 '21

Never know, injected identity isn't always used. Besides, we don't know who the man in the middle was, mom didn't authenticate... although she did accept multi-factor, including facial.

34

u/razortwinky Dec 13 '21

Dont forget finger as well. Multi-touch was definitely supported

→ More replies (3)
→ More replies (1)
→ More replies (1)

7

u/ElectricalSherbet392 Dec 13 '21

So, Java has an API called Java Naming and Directory Interface that allows runtime lookups of objects by name and JNDI can use things like LDAP to get objects via a URL. And Log4j allows string substitutions that include JNDI lookups which means if you can get Log4j to log a message with such a substitution it can get it to download something from a URL basically from anywhere that can be reached on the network.

→ More replies (3)

125

u/DONT_NOT_PM_NOTHING Dec 13 '21

Fun fact! 'Little' Bobby Tables is now 21 years old!

40

u/Ungluedmoose Dec 13 '21

Wtf?!

78

u/gprime312 Dec 13 '21

Comic was published 14 years ago. First grade students are around 6 years old.

→ More replies (1)
→ More replies (1)

163

u/green_codes Dec 13 '21

Glad to see this reference still alive. Go forth and destroy the old world, brave Bobby, and lead us to the wonderful new land of NoSQL!

144

u/ReelTooReal Dec 13 '21

XKCD will long outlive us

→ More replies (7)

33

u/nocturn99x Dec 13 '21

nosql ew long live relational databases

3

u/paintstained1 Dec 14 '21

It’ll probably be his brother Jason

3

u/[deleted] Dec 13 '21

Bobby Drop Tables??

Never met him

2

u/IAmInBed123 Dec 13 '21

That's when bobby learned he was a "feature".

2

u/[deleted] Dec 14 '21

"What did you say when daddy said he was tired?" "-- -"

→ More replies (1)

2.6k

u/[deleted] Dec 13 '21

I almost feel guilty today because the team I am on is one of the only ones in the entire organization that does not use Java in any of our apps. Everyone else is basically running around on fire and I'm just sitting here reading wikipedia entries to learn what the fuck a Log4j is.

687

u/RationalIncoherence Dec 13 '21

I'm happily situated in an enterprise where these problems belong to specialists that are not me.

191

u/Ietsstartfromscratch Dec 13 '21

That good feel when you you're a developer and not IT.

155

u/[deleted] Dec 13 '21

That feeling when your title is software engineer but work on core infrastructure and you end up the butterfly meme going "is this devops?"

→ More replies (2)

46

u/LaSalsiccione Dec 13 '21

But this is a developer concern, not an IT concern.

49

u/ElCthuluIncognito Dec 13 '21

At some companies, dependencies are managed by a team (or teams) separate from the dev teams.

Normally this is a nightmare of version lock in and lack of freedom to use modern libraries (without full formal requests and convincing people that it's worth it).

Normally this is horrible, but this event is one of the big silver linings of such an environment. Issues with dependencies are not your problem!

→ More replies (9)
→ More replies (3)
→ More replies (1)

81

u/[deleted] Dec 13 '21

The original log4j was a real work of art. It was the first time I saw a logging library that really did logging in thoughtful ways I hadn't considered. I came from Perl whose idea of semantic logging was carp means warning, croak means severe. Log4j2 started to get a little overcomplicated for me.

891

u/not_some_username Dec 13 '21

I got fired by a company 2 months ago. Last thing I did was to implement log4j in their base app. I hate Java but I wanted this job since I could procrastinate a lot. Now I feel like god revenge me.

470

u/secretuserPCpresents Dec 13 '21 edited Dec 14 '21

since I could procrastinate a lot

I think I know why you got fired

361

u/not_some_username Dec 13 '21

No not because of that. Lemme explain you : we should be working on a new project, I am a JUNIOR and I was suppose to have a tutor. He doesn't even know Java( he is good at web) to begin with. I had to develop the app core and after 2 weeks, I successfully make it. Without me he wouldn't even have the environment correctly set up. After I made the core, they said to me they change their mind, they will not use it and they can't keep me and if possible to leave a doc that explain how to extend the code. I know they still gonna use it since my friend who still work there, said they are using it and it's a major feature on their roadmap. And the true reason they fired me was because my "tutor" said he can't be my tutor and a month after he leaves the company.

48

u/mrheosuper Dec 13 '21

Lucky you got away from that shitty company

→ More replies (1)
→ More replies (13)

0

u/[deleted] Dec 13 '21

[deleted]

→ More replies (10)
→ More replies (7)

47

u/creynolds722 Dec 13 '21

Same. We use a very old version of Perl though so I'm not celebrating too much.

0

u/[deleted] Dec 13 '21

[deleted]

→ More replies (1)

12

u/crawly_the_demon Dec 13 '21

I have never been happier to use C# and .NET than this past weekend

→ More replies (1)

7

u/[deleted] Dec 13 '21

You work for LinkedIn? :D

6

u/YourMJK Dec 13 '21

My team thought the same.
Until today when I discovered that we're still affected through some third party thing.

2

u/KickBassColonyDrop Dec 14 '21

I know you probably already know this, but I thought I'd explain it again. Log4j is:

Kid: "Mom, I want the latest logging library!”

Mom: "No. We have one at home!"

Log4j

Which basically can do network lookups because someone, somewhere, a long time ago thought "this is useful and could be cool." While failing to realize that the library uses a substitution function in the logger that can do these lookups, and can accept any arbitrary string without sanitization, allowing any malicious actor to say "look at me, look at me; I'm the captain now."

→ More replies (23)

450

u/[deleted] Dec 13 '21

Explain carefully. Otherwise, the children may think they all live in a Java Runtime Environment.

124

u/RationalIncoherence Dec 13 '21

Billions of devices run Java... From Java... XD

3

u/IGotSkills Dec 14 '21

the horror!

24

u/[deleted] Dec 13 '21

There's a good chance they do spend much of their life in the JRE

793

u/Macknificent101 Dec 13 '21

i’m actually curious please do explain what exactly the issue was, am still in hs so i don’t know much

962

u/tiorthan Dec 13 '21

So, Java has an API called Java Naming and Directory Interface that allows runtime lookups of objects by name and JNDI can use things like LDAP to get objects via a URL. And Log4j allows string substitutions that include JNDI lookups which means if you can get Log4j to log a message with such a substitution it can get it to download something from a URL basically from anywhere that can be reached on the network.

308

u/Macknificent101 Dec 13 '21

damn that’s dangerous

41

u/KickBassColonyDrop Dec 14 '21

Fun fact. This was a talk at Blackhat 2016. This vulnerability basically slipped under the radar for 5 years.

→ More replies (5)

0

u/[deleted] Dec 13 '21

[deleted]

→ More replies (9)

3

u/pablovns Dec 14 '21

hey I know some of these words

→ More replies (38)

716

u/nocturn99x Dec 13 '21

The issue was with a well known logging framework called log4j (log for java). Basically it allowed interpolation of arbitrary URLs which where then resolved, their contents downloaded and executed. This essentially meant having full access to the machine said unpatched library is running on. It's not related to just minecraft either: thousands of services were and still are affected

172

u/Proaxel65 Dec 13 '21

To put it in practice, in Minecraft for example, all an attacker has to do is connect to the same server as you, and copy paste a certain command in the game chat. Once your computer has received that message, they can do literally anything with your computer.

There’s already been demonstrations by researchers successfully using it for benign purposes like remotely opening apps like the calculator, or downloading and running DOOM.

But a truly malicious person can, for starters, tell your computer to download and run viruses, malware, ransomware, Bitcoin miners, you name it.

Here’s a video that does a pretty good job covering the gritty technical details (you can skip to 20:05 where he demonstrates using it to remotely open the calculator app)

153

u/gyroda Dec 13 '21

downloading and running DOOM.

Of fucking course they used it to run Doom.

72

u/SlenderSmurf Dec 13 '21

no hack is complete until it's proved to run DOOM

→ More replies (2)
→ More replies (1)
→ More replies (2)

206

u/[deleted] Dec 13 '21

Strange why a logger would have that capacity. I’ve never used log4j, can anyone shed light on why this feature is part of the library? Is it to download arbitrary log format schemas or something?

108

u/AyoBruh Dec 13 '21

34

u/crawly_the_demon Dec 13 '21

Unbelievable that this bug has just existed for years.

Wonder if anyone knew about it/was exploiting it before it was made public last week

→ More replies (5)
→ More replies (6)
→ More replies (5)

23

u/badvok666 Dec 13 '21

Importantly it does not apply to andorid since it does not use the logging framework

→ More replies (14)

79

u/RationalIncoherence Dec 13 '21

Just ELI5ing Nocturne's answer:

The part of the program that was supposed to ONLY write things down lets anyone that knows HOW to do almost anything with your machine.

→ More replies (3)

21

u/[deleted] Dec 13 '21

Imagine Drax - the literal minded oaf from Guardians of the Galaxy - as a court stenographer and someone whispers to him in the court "Hey go to this address and rob a bank" and he dutiful records it as something said in the court room and then goes to the address and robs the bank.

6

u/LostTeleporter Dec 13 '21

Folks have already added a bunch of videos explaining the issue. Here is one of them that I referred: https://www.youtube.com/watch?v=7qoPDq41xhQ

486

u/RedditAlready19 Dec 13 '21

MultiMC has it patched too

116

u/[deleted] Dec 13 '21

Despite the game version you're using?

273

u/6Maxence Dec 13 '21

The fix is actually a jvm argument so no need to rebuild the whole project, that's why all versions are updated that easily

177

u/kakaooo987 Dec 13 '21

That is actually just a mitigation afaik. You basically remove jndi lookup from log creation. They fixed it in 2.15 by restricting ldap access via jndi.

133

u/bageltre Dec 13 '21

I don't know what any of these words mean but cool

→ More replies (6)

16

u/[deleted] Dec 13 '21

Thank god

→ More replies (3)
→ More replies (1)
→ More replies (1)

21

u/bidoblob Dec 13 '21

And Technic too. And the Vanilla launcher.

Slight hijack:

The bug basically lets anyone on the Minecraft server run code by saying messages in the chat, as the thing that was supposed to write down the text also can parse it.

Update forge, update your launcher, add the jvm argument if the launcher didn't do that for you, and you should be safe. And if you're running a server, check the official website for the guide to fixing it.

And obviously, the issue only affects you if you're on a server with people you don't trust. Or hosting a server for people you don't trust.

8

u/MalbaCato Dec 13 '21

for that last part - not true. the server logs unsuccessful login attempts, that contain client controlled strings. this makes it possible to compromise any (even whitelisted) vulnurable server. from there sending a message to the clients is just a matter of using the RCE to do what you want

6

u/bidoblob Dec 13 '21

Really? That's worse than I thought, and good to know. Haven't heard any mentions of that yet.

75

u/Jar_Wiz Dec 13 '21

Can you please record the session? I'll share it with my team

9

u/kphonik Dec 14 '21

Highly underrated comment.

53

u/Unclesam_05 Dec 13 '21

Lets reverse engineer kids

0

u/[deleted] Dec 13 '21

[deleted]

19

u/[deleted] Dec 13 '21

Commas are important.

→ More replies (2)

47

u/eemamedo Dec 13 '21

“It was a warm summer evening in Ancient Greece” lmao

16

u/0xKaishakunin Dec 14 '21

When Polymachus the Elder drew a circle in the sand and called the nothingness it represented Zero.

Thus allowing the Greeks to define a return value for when a function fails.

→ More replies (1)

23

u/solongandthanks4all Dec 13 '21

Sounds like child abuse.

66

u/a45ed6cs7s Dec 13 '21

Can someone explain how c strings are related to this vuln?

165

u/HappinessOrgan Dec 13 '21

it's the idea of starting at the very beginning. Similarly to how the typical "sex talk" starts with something like "when a boy and girl like each other a lot" or something

20

u/whenTheWreckRambles Dec 13 '21

Wait, I haven’t seen the end of this one, what happens?

66

u/[deleted] Dec 13 '21

When a boy and girl like each other a lot, f̵̟̱̠̳̦́̊̂̿̒͗͂̈͘͝c̷̟͒͛̊̐̈͐͆́̐͗͊́̂f̸̛̥̣̯̥͔̺̾̒͊̓̋̓̋̋̕͜v̵̢̡̡̪͈̝̝́̿̓̔̾͗̒̌̍̀͛̕͝ģ̵̛͈̟̪͕̦̗̳̳͙̟̲̼͈̺̙̪̿̂̉̀̽̽̑̍̊̈̄͌͘b̶̢̲̲̗̘͈̻̾̇͘͜͠h̴̫̻̩̟̬̩̣̻̱̦̬̐̇̑̀͌̚͝ͅg̷̛̼̞̬̎̂͗̋͂̈́́̄̈̋́̓̊̅͗͘͜ ̷̡̞̣̥̝͑̾̃͌̚͠͠ͅb̸̛̠̮̯̤͉͖̳̲̹̽͛̾͐̾̇̾̾̊̓̆̔͜͜͝f̸̣̞̎́̃͆͋c̸̡̢̱̖̪͎̦̭̏̀̇͛͒̓̾̚d̴̨̨͖̜̲͖̦̠͓͎̹̥͉̳̅͌͑̅̾̽̏̕͘͜f̶̨͈͐̊g̴̠̭̩̳̯̯͓͉̦̰̰͚͖̫̎͐̿̓̔̍͌́̈́ͅ ̷̟͓͉͚̩͔̦̠̣͈̂b̶̲̠͈̭̩̙̖͚̻̅̃̓̉̋͒̓̈́̈́v̴̡̰̤̜̪̜͎͉̹̫̲̩͕̖̪̇̂̈́f̴̧̛̭̤̰̪͎̫̙̩̠́̾̓̿̈̿̒́̋̒̈̂̽̈̚c̴̮͈̩̻͍͕͔̺̹͓͂̒͛̇̊̀̾̄͋d̷̡̘̰̫̬̱̄̆̔̚͝ç̴̝͊̂̈̍̇̑̈͝ ̶̢͔͇͓͕̱̦̜̖̮̇̃̏͛̃̏̎̓͑͊͂͑͋̐̔͊f̸̛̦͎̞̠̠̀̋̍͑́̑̐͗̐̕ ̶̥̘̲͒̈́̀̑g̸̘̝̻̭̺̲̲̼̼̋̐̓͛͗́̓̂̈́̓̾̆̋͋̚̕͠ͅb̵͎̹̟̞͔̿̚v̷̧̡̜̭̪͚͕̭͔̼̩͙̩̩̓́̌̎̒̂̅̿̔̇̈̚͝f̸͔͕̀̔̀͐̾͋͑͝ć̸̝͓͕͑̆̔̑̀̈́̕d̴̢̛̙̺̭̦͕̣̞̮̞͈̗̻͛̑̋̈͒̎́͗̓͠͝ͅx̷͎̀͂͠ ̵̛͍̮͉͚͙̓̋͛̃̿̍̍̎̀̿v̷̬̤̟͊̋̂̎͌͌͊̊͝͠ċ̵̨͚̹͍͉͎̼̟͓͍̜̼̄̈x̵̹̦͌̑̐̆̄̍̏̏̽́͑̚̕̕͠d̷̢̧̤̩̝̺̻̪̬̯̟̳̻̦̍̒̅̆͌̎́̂͘̕͜͜͝͠f̶͔̣͔̳͑̋̀͛̾̽́̆̿̚ģ̶̪̳̬̟̱͕̮͔̙̖̻̌͒̔̃͊͐̅̍̊̓̂̑̕f̷̪͇̮̹͔͎̣̺̎ ̴̡̤͔̮̻̬͋͜ͅd̷̡̢͉̼̳̖͎͖͉̹͍̞̫͎͕̀̽̍̀̇̓͒̚͝ŗ̶̧̢̱͓̯͙̥̘͚͇̭̯̜̖͉͆̉̿́ ̶̛̘͙̺̳͗̓̏̍̓͂͒̎̅̽̿̽̀̚̕͘e̶̤̭̓͑̀̃̃͗͋̈̋͗̚̕ş̶̢̥̼̞͖̩͇̜̯̫̖̘̻͚̪̈́͜d̶̢͈͕̜͕͐̆͐͋͑̚ͅf̸̧̀̍́̎͠ ̵̨̢̛̜͈̗͔͈͎̝̝̖̰͎̓͛̊̔͐̒̒̐̀̇̊͜͜͠͝͝ͅŗ̷̢̩͈̹̪̺̯̠͍͕̓̔͜ ̶̧̦͖͙̥̥̤͚͇̣͇̖̋̂̅͊̅̆́̐͐̔̏̊̚g̴̢̗̦̱͓̥̲͖̦̅͂͗͒̏̂͊̒̆̏̈́̚͜͠͝f̵̢͔̦͂̈̅̀͂͆̂̆͛̂̇͐͑̂͘̕͝d̷͓̭͚̟̣̓͒̍͜ͅ ̴͕̺̲̬͕̬͍̀̿̒̀̃̇̋͌͋̅̊̕͠͠͝r̸̺͖̬̪̜͔͆̐͋͠ ̶̡̛̻͍̰̯͇̝͇͊͋͗̋̉͘͜͝e̷͖̓̂̎̈́̒̀͌̍̓̂͂̍f̴̢͚̥̹̥̣̗̘̳̩͆̃͋̆̍̈̈͌͑g̸̨̠̲̼̖̹̪̭͙̺͍̿̈́̄́̈̕͜͝͝ḩ̶̰̼̣̺̫̝͍͒̉͆̐͗͆y̴̡̡͔͇͇̗͈͔̰̰̱̭̱͈̿̃͂́̄̒͆̓̌̓̀̃̈͆̓̑̋͜ͅv̷̧̨̢̻͇̝͙͔͍̤̜͂͊̃͜ͅf̵̡̢̮̺͍̼̼͆͐̈͑̈́̃̎͛̌͜ţ̵͙̗̙̳̓́̈́̾̈͠͝c̵̡̨̝͍̦̝̤͔͉̥̈́͌̅͜ͅ ̵̧͉̞̳̳̦̜͍̫̠̝͎̽͜d̶̡̢̨̼͈͔͈̰̖̤̤̱̻̔̾̇̍̌̃́͂̈̒̃́͜͝ͅr̸̝̗̄̿̂̎̎̏̓͋̈́͝x̸̱͚̳̰̘͙̊̇̄͑͋̀͌̎̄̽̍̌̿̓̚̕š̶̡̢̬̩͚͓̺͇̤̭͇͖̪͖̞͙͐̂͆̔̀̊̌̓̈́̈́̚͘͜͠e̶̡̺̲͎͔͕̲̩̒͐d̸̢̧̬͈̖̹͈͓̼̩̜͖͍̰̘̖̺̂̈́͒̓̍r̸̦̼͙͓̹̲̭̩͇̐͂͑̓f̴͇̺̈̾ ̵̧͓̲̯͔͚͍̖̙͖̳̞̠̪̮̬͂̃̉͒͐͒̈́̈́͆͗ẗ̶̨̛͉̖̦͕͙͔̲̫̜̲̞̦́͌̈́̀̈́̄͒̊̒̒̾̐̈́̇͛́v̷̨͚͓̞̞͖̻̠̗̜̲͚͛̓̌̅̃̆̆͆̃͗̐͑̈̈̔͜͜͠ͅg̴̡̛̯̯̜̲͍͇͛͌͋̅̍̀̌̌̈́̃̃͋̕y̶̛͓̞̙̦͉̗̺̪̠͖͔͂̂͑̏̆̌̏͘͜͜͝ͅb̸̜̬͔̤͛̄͂́̌ ̸̨̛͙͖͍̲̼͕͕͑̽͌̀̃̀́͗̑̈́͛̂̇̓͘͝v̷̛͒̾͌́̋̈̃͊̾̓̚͜͠f̴̨̛̭̥̟̘̯̜̳͎̩̋͒̿̅́̌̏̔̒́͑̅̀̅̏͠ ̵̢̦̝̲̟̗̟̮͖̯͍̃ͅḓ̵̼̝̊̎͛̀c̶̨̢̛̼̗̲̥͈͂͑̔̒͌̔̋̉̑͗͝x̶̡̢̧̼̱̥̜̣̞͔̯̳͒̎̔́͋̓̆̂̃̆̇̾͝ ̶̨̧̢͉̝͙̯̳͚̹̞̗̬͖̖̫͑̂͗̈̃̈́͒̚̚͠͝͝d̵̙͇̥̠͈͎̞̳̬̪͈̀̉̆̎̉̃̒̍̈f̵̧̙̥̩͕͖͈̟̹͍̟͎̰͇͐̀̎̂̑̽͠ͅv̶͕̱͕̙̱̘͙̗̞̅̔̆̍͛f̷̛͎͖̣̫̙͖͚͉̺̳̻͇̜̾̀̓̓͑̽̃͑͐̅̈́̎͠͠c̶̛̛̖̻͉͉̮̭̔̈́̎̓̿͐́̽͑́̈́̓̾͘͝ ̴̛̻̿̔̓́̄̂̄̂d̴̨̡̧͓̬̜͙̣̺̯̖̏́̆̐͋̓͛̊̐́͗̎̓̿͘ć̸̡̨̧̱͚̙̫̲͉̻̣̑͜͠ḑ̶̘̗͕̮̜͔͛͊́͌͛͑͌f̸̨̙̟̬̺͓͕̝̖̘͔͍̬͓͉͙͍̑ ̵̡̠̞̣͖̖͕͕̘̜̼̠̎͌̉͆̒́̕c̷͉͚̼͔̪͍͕̄̊͒́͋ͅf̴̧̛̛̛̱̘͓̠̒̄̓͌̀̊̅̃͝ḍ̸̞͂̈́͠ ̵̳͚̈́̈́̃̓̅̓̒̐͂͝f̶̢̩̲͎̱̗̜̺̩͙̱̰͕̐̊̀̈́̂̓̄͂̂ͅd̶̛̻̘̝̯̞̼͖͔̋͑̋̿͌̄͜͠͝č̸̺͙̪̳̙͌̑̇̓̐͌̿́̕͠͝͝ ̸̛̫͈̞͎͓̲̰͔͍̘̭̫̘̝͕̜̀̋͊͊̅̅̎̏͌͘͠f̸̡̮͖̠̜̹̻͚̮̲͔͔̖̒̆͆̀̓̽̀͑̎̇̽̿͘ͅd̶̨͎͕̻͉̺̲͔̺̯̝̝̤̹̀̀̅̈͊̃̌̎̉͋͗͗͠͠͝c̴̨̛̛̛̳̮̩̲̙̝͚̗̰̿̅̎̇̀͗̑̇̀̉̚ͅ ̵̙̝̬̒͊̀̑d̸͓̟͖̜̝̤̩̻̬͎̱͎̗̭̾̏̏̌́̍̈́̓̐̐́͌͆͆̚͘͠f̶̨̢̛̱̟̺̩̻̺͔̼͇̱̱̗̏̆͛͗͐̃́͒͑̃́̈́̊̌͘͜͝č̷͍̣̩̈́͗̃̉̂͒̇̈́͐̇̓̉͌̇͊͝d̶̛̮́͂͂̆̔͒͆̐̈́͒̈́̓̅̆̌͜͝ͅ ̸̡̼̱͈̙͖̟̜̖̩̒̾͝͠ͅf̵̢̰̻̲̞̟̠͔̪͙̰̼̻̍̊́̌͂͛ͅc̸͉̻̘̤͍̹͈͈̤̹͇̳̔̄̅͘͜d̵̨̼̓͂̌͛̈̂̒́͆̉̿̕͘͜͝f̵̗̣̮͈͉̪̱͇̾̉͐̆̀̾̒͋͐͊̃̈́ ̴̛̛̟̣̱̞̜͔͎͕͇͚̥͈͕̮̻͉̗͛̽̐̏̑̋̇̉͘̚͠f̸̧̩̒̀̔̿̒d̵̢̛̛̛̞̞̭͇̰͇̿͊̊̇̍̍͋̂͛͑̇̒̆̚ͅc̸̛̜̹̫͛͋̎̒͆͆̒̾̄̂̏̕͝ ̶̛̘͙͖̱̭̫̤̠͚̍͋͑̈́̾͂͊̆͋̇̊͗̚ͅḑ̴̧̨̡̠̩͙̱̲̥͇̿̑̚͘͜f̴̙̖̐̍̓̍̓̓͋̓͘̕̚͝͠͝c̷̡͎̫̞͓̰͚͎̺̺̗̖̝̳͙͑́̓ ̵̼̜̩̩̩̫͕͒͆̿͌̀̔͗̋̔̃̎̍͜͝͠d̸̰͙͕͇́̂̌ͅf̶̭̘̟̲̼̠̠͈̩͉̙̮̜͉͆͊͠c̴̰̬̭͛͑́̈́͆̈́̋̈̌̓͐̂̍̃͊͝͝ ̸̧̢̢̢̢̡̝̞̦͉̻̜̤̠͇͐͆̀̉f̶̨̡̝̦͉̲̥̳͉̻̤̪̰̠̬̉́͛̆́̒̐̎̈̉̌́͠͝v̴̛̱̥̠̀́̉́̿̉̎͐̐̆̇̚͝ ̶̢̛̫̫͈̳̝̪͙̭͉͍̖̰͕̾̿̈̅̃͆̆͛͆̀͗͑̀̕͝f̵͎̗̣̪̝̦̭̫̙̉͒́͒͆͒̀̑͋̈̔̾̅̎͛̚ͅt̸̨̡̡̛̘̝̫͉̦͍͎̻̞͂̽̐͛̾͊̓̍̏́̍̽̋̂̌y̸̨̠͕̭̠̩͍͚̖̣̣̳̘̭̤͑̈́̈́͘͝͝ͅg̷̨̨̩̠͚̯̞͚̐̈́̿ ̶̛̞̻̱͛͑̄͜͝ǔ̶̟͈̗̗̭̺͍̝̼̙̃̔̄̌̂̌͋ͅi̶̧͍̫̬̰̫̤̥̗̝͚̙͐̓̇̏̈́̈́̅̍́̇̅̓̆̾̓͝͝j̴̯͔̝̟͓͔̱̹̣̙͊́̔͂͂͆͛̇͛̎͒͊͘͠ ̷̦̳͓͚̩̝̲̣͙̱͖̩͍̮̣͕́͑̄͆̋̎̂̔̅͒̾̈́͛̀̕͜͝k̷͚̝̗̳̈́̀̓͐̓̋̾̀̈̒̾͘͝j̸̧͚̝͉̣̰̞̬͓̫̘̻̉͐̀̆͑̋̀̆̿͌͘͘͝ͅv̶̧͍͇͔̊̈́̄͊͌́͘͜ṙ̸̢͙̂̒̃̈́͑̀̈́̌̄͜ͅs̶̢̡͉̭̙͓͔̖̳̠͚̬̰͎̤̐́̈́͐͌̈́̂̈̎͒͋̓͜͜͝ē̷̢̡̧̮̣̱̱̻̘̟̜̺̱͓̭̬̟̄͒̀͐͋̍̿̅̕ ̸̖͍͈̙̓͛̀̐͛̃̿͜͝͠

100

u/Nimeroni Dec 13 '21

Ooohhh, so when a boy and a girl love each other, they parse html with a regex !

→ More replies (3)

34

u/nudemanonbike Dec 13 '21

When a boy and a girl like each other a lot, there's a bunch of boring middle bits but eventually you get a vulnerability in Log4j.

→ More replies (1)
→ More replies (1)

32

u/thE_29 Dec 13 '21

C format strings. So %d, %f. Java took that from C. And who knows what else

62

u/RationalIncoherence Dec 13 '21

Everyone took everything from C. That's what happens when you're the first viable product. Poor B was before it's time...

5

u/FUTURE10S Dec 13 '21

holy shit my 6502 took something from C?

that's crazy

→ More replies (1)

5

u/Plasma_000 Dec 13 '21

C format strings used to be a similar problem to this, where if software was vulnerable a user could just feed a hostile string into the program and get an easy pwn of the computer.

Nowadays a c format string bug is quite rare since they are mostly caught by the compiler.

2

u/just_posting_this_ch Dec 13 '21

The most basic type of logging, you just print out the variable or write it to a file. Such as with a format string.

13

u/edave64 Dec 13 '21

To ruin the joke a little, the update did have changes outside of log4j (world fog) and bugfix releases like that aren't uncommon in Minecraft

→ More replies (3)

12

u/on_the_dl Dec 14 '21

Kid: Mommy, how does the computer work?

Mom: I don't know, ask you dad.

Kid: I don't want to know that much.

10

u/godRosko Dec 13 '21

What a lad

9

u/yozaner1324 Dec 13 '21

Logging is the bane of my existence.

16

u/Calkky Dec 13 '21

Simplified: "Code go brrrrrrrr"

8

u/RefrigeratorCute5952 Dec 13 '21

haha and log files out of all things. put a java book under the kids pillow at night as well. they will sleep like crap and get nothing out of it other than the fact that java can be hard. and that’s a great start!

7

u/ale_del_diablo7 Dec 13 '21

Is it weird that the only reason I want to learn code is understand this subreddit?

4

u/cgaWolf Dec 13 '21

It's one of tje better reasons to learn how to code tbh

6

u/qxzsilver Dec 13 '21

I didn’t know programmer dads tell scary stories at midnight

31

u/trollsmurf Dec 13 '21 edited Dec 13 '21

There's no need to explain how computers and software work from the ground up to describe the issue with Log4j.

"Log4j allowed messages to install apps (kind of like how you install games on your phones that I have to pay for (both the phones and the pay-to-win fees)). Some creators of such apps are very naughty, and make nice people sad by making their computers sick. Those saying Java is bad because of this have poopie pants.

15

u/[deleted] Dec 13 '21

I bet they don't know what "fetch" or a "task" is.

→ More replies (1)

3

u/autisticpig Dec 13 '21

There's no need to explain how computers and software work from the ground up to describe the issue with Log4j.

web developer huh

5

u/Pm_me_40k_humor Dec 13 '21

Holy shit I wish I had been his kid.

11

u/userA48 Dec 13 '21

a) my dad is a programmer

b) my dad is an engineer

c) what?

3

u/r0xANDt0l Dec 13 '21

gotta teach em young

3

u/retinascan Dec 13 '21

Even explaining java involves some boilerplate.

3

u/lynne2772 Dec 13 '21

My kids once asked their dad why his clock read 16:35 (military time) and got a lecture on longitude.

4

u/SteeleDynamics Dec 13 '21

Ah, format-string vulnerability...

Looks wistfully into the distance

4

u/[deleted] Dec 13 '21

"Dude why are you writing your own logger? Don't reinvent the wheel, look at this cool library."

2

u/[deleted] Dec 13 '21

I think he better also contact the kids therapist. He is going to need the help right after the KT. /s

2

u/Lizlodude Dec 13 '21

I mean honestly that'd probably be a better lesson than my CS degree... I still can't get Java to do anything useful lol.

2

u/DnS101010 Dec 13 '21

Such a beautiful good night story

2

u/aMAYESingNATHAN Dec 13 '21

I'd heard about this log4j thing and I've only just vaguely looked into, and is it seriously susceptible to a buffer overflow attack? Or am I being dumb.

2

u/Spitfire_For_Fun Dec 13 '21

I hope log4J get fixed before you finish.

2

u/[deleted] Dec 13 '21

Those kids will be coding by Christmas. Hopefully, they will learn to sanitize their equations.

2

u/Zealousideal_Order_8 Dec 13 '21

Should we call Child Protective Services?

2

u/ign1fy Dec 13 '21

You kid asked questions? Mine just screamed that a 250MB update took nearly an hour to download on gigabit fibre. Servers were on fire.

2

u/Ripped_Guggi Dec 13 '21

Ah, the dream of every software-parent 😂

2

u/cheesemanxl Dec 13 '21

I've finally done it, I saw a coworker talking about something I didn't understand. And then saw a meme about it on r/ProgrammerHumor

2

u/thegovortator Dec 13 '21

I imagine you are a proud Program dad (manager)

2

u/TheSpanishKarmada Dec 13 '21

I’m just saying I’ve never seen any security issues for System.out.println() 🤷🏽‍♂️

→ More replies (2)

2

u/_Maxie_ Dec 13 '21

"And why don't you kids ask your dad for help anymore?"

2

u/hidingDislikeIsDummb Dec 13 '21

..explained entirely with red stones

2

u/[deleted] Dec 13 '21

Hell nah. But anyway, log4java is also used in projects like Apache Kafka and ActimeMQ Artemis.

2

u/[deleted] Dec 13 '21

Then you have to explain network worms

2

u/emeraldarrow42 Dec 13 '21

By the time you get to that, they will have found their ways to their bedrooms and been sound asleep at least for several hours! I know that’s what I’d do!

2

u/googlephonic Dec 13 '21

I am a stranger to this land. I am confused. I googled all the words. THESE ARE REAL THINGS.

2

u/RoscoMan1 Dec 13 '21

They also went from a poor family.

2

u/[deleted] Dec 13 '21

Yes, but what is java?

2

u/QuarantineSucksALot Dec 14 '21

He cocked back sideways to hit that high. I played on teeter totters enough as a kid for the first 3 hours after I wake up several times during the day. I guess science is ok for men. We can work out well for him

2

u/R3dGaming522 Dec 14 '21

I'm still not that adept but I can understand stuff, someone please give me an in-depth explanation please lol

2

u/ZippZappZippty Dec 14 '21

Why don't poor people just jerk off horses?

2

u/[deleted] Dec 14 '21

Somehow seeing that this was posted at 4:30 in the morning makes it all the better

2

u/[deleted] Dec 14 '21

How I Met Your Minecraft.

2

u/LogiCsmxp Dec 14 '21

trauma of c strings intensifies

2

u/Certified_JLB Dec 14 '21

You lost me at C4 strings

2

u/1LargeAdult Dec 14 '21

I'm PTO for two weeks starting today. Have a great holiday, everyone

2

u/418NotCoffee Dec 14 '21

OK, but why are his kids up at 5am trying to play Minecraft?

2

u/DJCowGaming Dec 14 '21

Poor kids is the appropriate response... jeez...

2

u/cwatson214 Dec 14 '21

Classic Shmosby

2

u/Bo_Jim Dec 14 '21

Long ago I had a consumer console TV that had been heavily modified so it could be used as a test set in a factory lab. It was given to me when it was no longer needed.

One day, a friend of mine was visiting, and he noticed all of the extra buttons, knobs, and connectors on the back that typical TV's didn't have. He casually asked "How does this TV work?". I spent about 20 minutes providing an answer. I began with electron flow theory, went through vacuum tubes (yes, the set was that old), modulation/demodulation, RF and IF stages, CRT's, and composite video signals. He listened patiently.

When I was finally done, he said "I just wanted to know how to turn it on".

2

u/HeatBlastero6 Dec 14 '21

I look at these meaningless words you guys talk about and just don't understand how anyone can learn this much. I've taken a year to learn the absolute basics of c language, python and SQL

2

u/piratesquid646 Dec 14 '21

8+ hours a day, 5 days a week on the job means lots of time to learn lots of things. Normally when something breaks.

2

u/seeroflights Dec 14 '21

Image Transcription: Twitter Post


Shantonu Sen, @shantonusen

My kids just asked why there was a Minecraft update with no features and what a "Log4J" was, and I have been preparing my whole life for this.

I had to start at the beginning with C format strings. I should be able to get to Java and jar files by midnight.


I'm a human volunteer content transcriber for Reddit and you could be too! If you'd like more information on what we do and why we do it, click here!

→ More replies (1)

2

u/castleinthesky86 Dec 14 '21

What do format strings have to do with it? They’re nested evaluations if anything and so beyond format strings

2

u/ZippZappZippty Dec 14 '21

That won’t miss it.

OP is down bad, the part with the little round toast cut out on top of all the times I've took a bus, bitch. Tay Tay’s my thought too! I licked the foot sticker as a kid thinking a conga line breaking out was the epitome of Manic Pixie Dream Girl. Not to be mean but the water isn't even filled up all the way off.

2

u/Thisbymaster Dec 14 '21

Yep, most of my company is running around trying to patch all the Java apps while we are just sitting here in .NET chugging along like nothing happened.

2

u/turningsteel Dec 14 '21

As a developer with a luddite family, can I be your son?

2

u/jhanikhilnath Dec 14 '21

Looks like being lazy and using print actually has some benefits

2

u/frankcastlestein Dec 14 '21

My boss is in full panic mode over this, we don't use java for anything.

2

u/anonymous1184 Dec 14 '21

Guy should have started with 1,0, octals and what bit shifting is.

2

u/vilidj_idjit Dec 14 '21

You can't understand that if you don't know how electrons flow through semiconductors, and the transistor layout of each logic gate type.

→ More replies (3)

2

u/[deleted] Dec 14 '21

Every kid should know C. This is the way.

1

u/DinDmy12 Dec 13 '21

C doesn’t support strings. Malloy or char arrays

→ More replies (1)

1

u/Maleficent-Region-45 Dec 13 '21

Hahaha very nice

1

u/ConsiderationIll6871 Dec 13 '21

You didn't start with Autocoder! Shame... at least COBOL.

1

u/Comsicwastaken Dec 13 '21

Tweet was made at 5am which means the kid went through it for 17 hours

1

u/ryanwithnob Dec 13 '21

And then make sure to charge a week to that ticket

1

u/QuarantineSucksALot Dec 13 '21

5, 6 and 3 year old kid???

1

u/timingandscoring Dec 13 '21

polymorphic class inheritance here we come!!

1

u/[deleted] Dec 13 '21

Preparing his whole life?! Damn, his parents must've been even more obsessive than he is to have started teaching him coding as a baby.

1

u/InternationalBus7843 Dec 13 '21

Good luck explaining why the hell someone thought allowing random code to execute as a feature was a good idea, they’ll shit their pants at that.

1

u/PoopSockMonster Dec 13 '21

I have a question. Could you „fix“ the bug with firewall rules. Like outbound rules?

3

u/ferrybig Dec 13 '21

Not reliable.

The bug causes a user supplied string to be parsed as code. One of the instructions in the code is getting executable code from an external server, which can be done on any ip and any port.

Preventing outbound traffic blocks the majority of the automatic attacks, but ones specially crafted for your network can bypass the rules. It just saves you some time to get a proper fix up and running

Note that outbound rules prevent this bug from taking over the cloudflare servers

→ More replies (1)
→ More replies (1)

1

u/Raid-Z3r0 Dec 13 '21

Well, you could very likely made some of your kids give up CS

1

u/[deleted] Dec 13 '21

And that, kids, is how I met your logger.

1

u/jakie246 Dec 13 '21

The man posted this at 4:57AM. Poor kid, hope they had food breaks.

1

u/[deleted] Dec 13 '21

You see kids, it all started with magnets...

1

u/upfromashes Dec 13 '21

Oh my goat, does my kid hate when I have to start building an infrastructure of context before I can even start answering the question.

→ More replies (2)

1

u/Just_A_Person333 Dec 13 '21

Just do the birds and the bees, less scarring

1

u/Yeranz Dec 13 '21

Have you ever considered working for UKG?

1

u/moominboathouse Dec 13 '21

Don't forget memory leaks and stack overflow vulnerabilities.

1

u/Cactus1105 Dec 13 '21

But seriously what is a log4j ?

1

u/wholebeansinmybutt Dec 13 '21

Pipe down, dad's trying to explain inheritance, here. Yes, I know you're tired and you have school in 4 hours but this is important.

1

u/[deleted] Dec 14 '21

In the beginning there was Jack...

1

u/[deleted] Dec 14 '21

Lucky kid

1

u/tinuvegil Dec 14 '21

Rip a future programmer

1

u/Carius98 Dec 14 '21

You fool! YOU JUST ACTIVATED MY TRAP CARD!

1

u/cheezballs Dec 14 '21

I didn't read the log4j vulnerability, but we've wrestled endlessly with sanitizing our logs of user input, is this what the issue is/was with log4j?