Linux core dumps are memory snapshots created when programs crash, which can contain sensitive information like passwords and configurations; attackers can extract this data by examining core dump files, making it essential for developers to configure core dump settings securely and consider the security implications of how their applications crash.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
Linux Coredumps: A Goldmine for Hackers
Added:This is a list of core dumps on my machine. They may not be interesting for us, but attackers can look into this and find confidential information such as passwords.
In this video, I will share with you the basics of core dumps and how hackers extract data from them. When a program crashes, the kernel captures its memory and dumps it onto disk, but this depends on the signal being intercepted by the kernel. Here are some examples.
First is when a program encounters a segmentation fault, meaning it tried to access an invalid memory location.
Another one is abort. This is a voluntary crash made by the program to kill itself and prevent further damage to the system. We also have floating point exception issues, which happen when the mathematical operation is impossible to perform. The next one is illegal instruction, which is very low-level. This means the CPU tries to execute an invalid or forbidden instruction. Last one is about faulty hardware access, which is something rare for most of us.
Once the kernel intercepts the right signal, it will hand off the program's memory to systemd. Here is the process.
First, the program crashes.
The kernel then intercepts and, based on the signal, decides whether to create a core dump or not. If it needs to, it will pipe the memory to systemd core dump facility.
Once systemd takes control, it will extract metadata and dump a compressed file inside this directory.
To see the core dumps, we will run the following command.
There is quite a lot in my machine, and it shows me that picom is regularly crashing, so I might need to check it sometime. We have here the time of the crash, the process ID, UID, and signal.
It also tells us that the core file is missing. That happens if it is too large or it doesn't obey the restrictions on the core dump configuration file. Kernel imposes restrictions since it cannot generate dumps for all crashing processes. It can be process intensive or may consume a lot of disk space.
Going down, we see some recent crashes.
Unlike the first ones, this Python program has a core file present, and it is not too large.
Once attacker sees this, he can easily extract data from it.
To extract data from the core file, we will use same command.
We will dump the PID and put into a file.
The reason we are doing it like this is because the original core files are in compressed format, so we need to convert them to something readable.
After we dump it, we will see several information. In the command line section, we see an exposed password.
This is a demo application I wrote to simulate a crashing app. This means sometimes attackers don't even need to read the whole core file. They can just look into the command line parameters.
If there is nothing useful there, then that is the time that we need to read the dump we just created.
From here, aside from passwords, we can easily see configurations and other secrets.
As we learned in this video, crashing applications can be valuable to attackers. So, if you are developing an application, you must take into consideration how your program crashes and whether a core file will be generated during those times. I hope you learned something today. If you find my content valuable, please support me by liking this video and subscribing to my channel. See you on the next one.
Related Videos
LBF101 Creating an XML Changelog
liquibase7511
3K views•2026-06-15
Alta Labs Cloud Dashboard Real time Network & Xnet Insights!
ShinyTechThings
158 views•2026-06-17
Wait... Group Policy Not Applying? Check This First!
keeplearning_iT
144 views•2026-06-15
Leetcode Weekly Contest 506 | Life's boring these days
Pudeesht
2K views•2026-06-14
microJAM: MAKING A MICRO GAME FOR A GAME JAM IN CLOJURESCRIPT AND TOTALLY NOT C
janetacarr
156 views•2026-06-18
Partitioning vs Bucketing vs Clustering: How to Make Queries 100x Faster
thedataandaiguy
194 views•2026-06-16
Design Claude Code Like a Senior Engineer
hayk.simonyan
344 views•2026-06-19
Linus Torvalds: AI Won’t Replace Understanding Code
SavvyNik
140 views•2026-06-19











