The Linux kernel is beginning to integrate Rust components to mitigate long-standing memory safety issues. This shift reflects a deeper effort to reduce systemic risk in core infrastructure. According to the article, Rust’s guarantees around memory safety help prevent bugs before code is even executed. This is particularly important in kernel development, where even minor errors can lead to system-wide compromise. The integration is incremental, focusing on new components rather than rewriting existing code. For operators, this means a gradual change in how kernel code is built and maintained. Over time, systems may include a mix of C and Rust components, which can affect debugging, tooling, and compatibility. Teams may also need to adapt to new build dependencies and workflows. Mixed-language environments often introduce new operational complexity before benefits are fully realized. For Linux administrators and infrastructure teams, this has practical implications. In practical terms, it is a good time to review: - Kernel build and deployment pipelines - Compatibility of tooling with Rust-based components - Training needs for teams maintaining kernel-level code - Testing processes for new kernel releases Article: https://lnkd.in/eRGmt6zD #LinuxKernel #DevOps #Infrastructure #OpenSource #SecurityEngineering
Linux Kernel Integrates Rust to Enhance Memory Safety
More Relevant Posts
-
The adoption of Rust in the Linux kernel is aimed at reducing future vulnerability classes rather than just fixing individual bugs. This represents a proactive shift in how kernel security is approached. The article notes that instead of continuously patching memory-related flaws, Rust helps eliminate them at the source. By enforcing safe coding patterns, it reduces the likelihood of introducing new vulnerabilities during development. This is a long-term strategy rather than an immediate fix. Operators may not see immediate changes, but over time, kernel reliability and security posture should improve. However, legacy code remains a factor, meaning traditional risks still exist alongside newer protections. This creates a transitional period where both old and new risk models coexist. Most environments run a mix of legacy and modern components at any given time. For Linux administrators and infrastructure teams, this has practical implications. In practical terms, it is a good time to review: - Long-term upgrade strategies for kernel versions - Risk exposure from legacy components - Dependency on vendor or distribution kernel timelines - Internal policies for adopting newer, more secure builds Article: https://lnkd.in/eRGmt6zD #LinuxAdmins #KernelDevelopment #InfrastructureSecurity #OpenSource #DevOps
To view or add a comment, sign in
-
Reproducible builds expose inconsistencies between source code and compiled binaries in Debian packages. This creates a mechanism to detect software supply chain tampering at build time. The article highlights that reproducibility ensures “the same source code always produces the same binary output.” Any deviation signals environmental influence, injected code, or build-time manipulation. This is particularly relevant where build environments include: - timestamps - file ordering - compiler variations In real systems, many binaries are built in centralized pipelines or by upstream maintainers. If those environments are compromised, the resulting packages can differ from expected outputs without obvious signs. This affects: - package managers like APT - internal build systems - container image layers derived from Debian Most teams never compare rebuilt packages against upstream binaries. From a system hardening perspective, this is worth reviewing. In practical terms, it is a good time to review: - Build environment consistency in CI/CD pipelines - Deterministic build configurations for internal packages - Use of reproducibility testing tools - Controls around compiler and dependency versions Article: https://lnkd.in/eqaZ2KYu #DevSecOps #Linux #InfrastructureSecurity
To view or add a comment, sign in
-
Linux permissions + special bits 🐧 Deep-diving into Linux internals today starting with something we all see but rarely really understand: When you run: ---------------------- "ls -la" --------- u will see something like this -------------------------------------------- "-rwxr-xr-- 1 deploy deploy 9096 May 15 app.sh" ------------------------------------------------------------------------- Most people just chmod 777 and move on. I wanted to know exactly what every character means. Breaking down -rwxr-xr-- First character { - } = file type symbol Meaning - regular file d directory l symbolic link Next 9 characters = permissions, 3 groups of 3: positions rwx → owner (user) positions r-x → group positions r-- → others ------------------------------------ Inside each group: r = read w = write x = execute - = no permission --------------------------- So here: owner: rwx → read, write, execute group: r-x → read, execute others: r-- → read only ---------------------------------- Octal notation (why 754 makes sense) r = 4, w = 2, x = 1 rwx = 7 r-x = 5 r-- = 4 So: chmod 754 app.sh → rwxr-xr-- ---------------------------------------------- Some useful patterns: 755 → executables / web app files 644 → config / text files 600 → private files (e.g. SSH keys) 777 → everyone can do anything (avoid in production) ----------------------------------------------------------------------------------- ======================== Special bits: SUID, SGID, Sticky On top of rwx, there are three powerful (and risky) bits: SUID (4xxx, e.g. 4755) File runs with the owner’s permissions (often root), not the caller’s. Great for specific system tools (like passwd), but dangerous on custom binaries. -------------- SGID (2xxx, e.g. 2755) File runs with the group’s permissions. Also used on shared directories so new files inherit the group. ------------- Sticky bit (1xxx, e.g. 1777) On a shared-writable directory, only the file’s owner can delete their own files. This is how /tmp works; without sticky, any user could delete anyone else’s files. ------------- From a security perspective, SUID and SGID are common privilege escalation paths if misused or left on custom binaries. These bits should always be audited and justified. I’m currently deep-diving into DevOps + DevSecOps, starting from fundamentals like this and moving toward modern hardening. Follow / connect if you want to see how to replace risky SUID/SGID usage with safer Linux capabilities in the next post. #Linux #DevOps #DevSecOps #CloudSecurity #LearningInPublic
To view or add a comment, sign in
-
-
Your process is dying. You don’t know why. Most engineers reach for logs first. Logs lie. Or worse, they’re silent. When a process exits with no explanation, no stack trace, no useful output, that’s not an application problem. That’s a syscall story. And until you learn to read it, you’re just guessing. I’ve hit this in Linux systems and containerized environments more times than I can count. A process starts, runs for a few seconds, then dies. Exit code 1. Nothing in the logs. No OOM event. Just gone. The culprit is almost always at the kernel boundary, the layer between your application and the OS that nobody talks about until something breaks. Every time a process reads a file, allocates memory, opens a socket, or receives a signal, it makes a system call. That’s where the real story lives. Here’s the pattern that kills processes silently: A process requests memory. The kernel can’t provide it. Instead of throwing a clean error the app can log, it returns a failure code the app wasn’t built to handle, and the process exits without a word. No OOM killer entry. No container restart message. Just a dead process and a confused engineer. strace sits at that kernel boundary and intercepts every system call, showing you exactly what the process asked for and exactly what the kernel said back. Logs are written by developers. Syscalls are written by reality. If you work on Linux systems and haven’t added strace to your toolkit, you’re solving half the puzzle with half the information. What’s the most confusing silent failure you’ve debugged? Drop it below 👇 #Linux #SysAdmin #DevOps #Kubernetes #CloudEngineering #RHCE
To view or add a comment, sign in
-
Linux Troubleshooting Series — Post #13 The Server Has Free Memory… But Applications Keep Crashing One of the most confusing Linux production issues: You check memory: free -m And see: ✅ Plenty of free RAM But applications still: ❌ Crash ❌ Freeze ❌ Get killed unexpectedly ❌ Restart randomly So what’s happening? 👉 The Linux OOM Killer. The Hidden Reality: Linux protects itself when memory becomes critically stressed. When that happens: 🚒The kernel starts killing processes automatically. Even if the system still appears partially “healthy.” Common Symptoms: • Java applications suddenly stop • Docker containers restart • Kubernetes pods get evicted • Databases terminate unexpectedly • SSH sessions disconnect • Random service crashes First Rule: “Free memory” does NOT always mean memory is healthy. Linux memory management is far more complex than just “used vs free.” Critical Commands: Check memory usage: free -m Check swap activity: vmstat 1 Look for: • si = swap in • so = swap out Heavy swap activity = major warning sign. Check OOM events: dmesg -T | grep -i oom or journalctl -k | grep -i kill Real-World Causes: • Memory leaks • Java heap exhaustion • Kubernetes memory limits • Docker container abuse • Runaway processes • Huge cache pressure • Bad application updates • Insufficient swap configuration Hidden Symptoms BEFORE Crash: • Applications slowing down • SSH lag • High swap usage • Disk I/O spikes • Random latency • System becoming “sticky” Production Workflow: Always correlate: • free -m • vmstat • top • dmesg • Container metrics • Application logs Together. Enterprise Lesson: Linux will sacrifice applications to save the kernel. The system may survive… But your applications may not. Pro Tip: If applications disappear suddenly with NO normal shutdown logs: 👉 Suspect the OOM Killer immediately. Especially in: • Kubernetes • Docker • VMware VMs • Java environments In Enterprise Environments: Memory pressure can impact: • VMware clusters • AI workloads • Kubernetes nodes • Databases • Monitoring systems • Enterprise applications Production Lesson: Healthy infrastructure is not: “Server still responds to ping.” Real health means: ✔ Stable applications ✔ Controlled memory usage ✔ Minimal swap pressure ✔ No kernel memory kills #Linux #LinuxAdmin #SysAdmin #DevOps #Kubernetes #Docker #VMware #Infrastructure #Troubleshooting #MemoryManagement #OpenSource #DataCenter #CloudComputing #ServerManagement #SRE
To view or add a comment, sign in
-
-
🤷 A web server suddenly started receiving an unusually high number of requests. The task sounded simple: 👉 Find which IP address was hitting the server the most from the access logs. At first glance, it felt like just another Linux command exercise. But while solving it, I realized troubleshooting is less about memorizing commands and more about thinking step by step. The log file contained thousands of requests, with IP addresses in the first column. So I started breaking the problem down: First, extract only the IP addresses: awk '{print $1}' access.log Then I remembered something important: uniq -c only counts adjacent duplicate lines. That meant I couldn’t directly count repeated IPs unless identical IPs were grouped together first. So the next step became: awk '{print $1}' access.log | sort Now duplicate IPs were arranged together. After that: awk '{print $1}' access.log | sort | uniq -c This gave the count of requests from each IP. Then I sorted the counts numerically: awk '{print $1}' access.log | sort | uniq -c | sort -n And finally: awk '{print $1}' access.log | sort | uniq -c | sort -n | tail -n 1 The last line revealed the IP address generating the highest number of requests. The more I learn Linux and Shell Scripting, the more I enjoy the debugging mindset behind it. Would genuinely love any feedback. #Linux #DevOps #ShellScripting #Troubleshooting #Cloud #Docker #Kubernetes #LearningInPublic
To view or add a comment, sign in
-
The Linux kernel community is warning that AI-generated vulnerability reporting is creating significant operational overhead for maintainers. This matters because the Linux security ecosystem relies on trusted signal quality across upstream projects, distributions, and downstream infrastructure teams. The Register reports that Linus Torvalds criticized the growing number of AI-assisted bug submissions hitting kernel mailing lists, describing many reports as low-value and difficult to validate. The problem is not that automated analysis exists. Kernel developers have long used fuzzers and static analysis tools successfully. The issue is the growing volume of reports lacking meaningful security context. Security findings without clear: • exploit paths • privilege implications • reproducibility • runtime conditions • affected configurations still require human review time from maintainers and security engineers. For Linux environments, this creates downstream operational friction. Distribution maintainers, package teams, and enterprise Linux operators depend on upstream clarity to determine: • patch urgency • exposure scope • kernel upgrade requirements • backport necessity • mitigation guidance When noisy reports enter the ecosystem, it can complicate remediation planning across production infrastructure. Many organizations already deal with scanner output that flags dormant or unreachable code paths inside container images and build dependencies. From a system hardening perspective, this is worth reviewing. In practical terms, it is a good time to review: • how vulnerability scanners are tuned in CI/CD pipelines • exploitability validation procedures • kernel package lifecycle management • runtime exposure mapping • dependency inventory accuracy • container base image maintenance • security exception handling processes Good vulnerability management is increasingly about operational context, not just raw finding counts. Article: https://lnkd.in/eEB2nAuk #Linux #DevSecOps #SupplyChainSecurity #LinuxSecurity
To view or add a comment, sign in
-
🔴 CVE-2026-31431 – "Copy Fail": 🧩 What Is It? 9 Years Hidden, 732 Bytes to Root Disclosed April 29, 2026 — here's what every DevSecOps engineer and cloud architect needs to know. 📊 Severity CVSS 3.1: 7.8 (HIGH) Local attack vector, low privileges required, no user interaction needed A public PoC is available and reliable across multiple major Linux distributions Added to CISA's KEV catalog 🌍 Affected Scope Virtually all Linux distributions running kernels released from 2017 until patched — Ubuntu, Amazon Linux 2023, RHEL 10.1, SUSE 16, Debian, Fedora, and Arch Linux. ☁️ Why This Is Especially Dangerous in Cloud / Kubernetes In container deployments, the vulnerability may facilitate container escape scenarios. Docker, LXC, and Kubernetes grant container processes access to AF_ALG by default if algif_aead is loaded on the host kernel. Its reliability, stealth (in-memory-only), and cross-platform reach make it particularly dangerous in cloud, CI/CD, and Kubernetes environments running untrusted code. 🔍 How Was It Found? Surfaced by Xint Code in about an hour of scan time against the Linux crypto/ subsystem — one operator prompt, no manual harnessing. Offensive AI is now capable of autonomously finding kernel-grade bugs. The discovery-to-exploitation window is shrinking fast. 🛡️ Immediate Actions "echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf rmmod algif_aead 2>/dev/null || true lsof | grep AF_ALG # check exposure" This does not affect dm-crypt/LUKS, kTLS, IPsec/XFRM, OpenSSL, GnuTLS, NSS, or SSH. It may affect apps using the afalg engine or binding AEAD/skcipher/hash sockets directly. Patch: update to a kernel including upstream commit a664bf3d603d. FCEB agencies must apply fixes by May 15, 2026. 🔎 Exploitation Detection AF_ALG loading 300+ seconds after boot is suspicious — normal loading happens at startup. A corrupted /usr/bin/su may produce malformed auth.log entries with a missing invoking username. 🏗️ Architectural Takeaway If your isolation story is "containers on a shared host kernel," the threat model needs a hardware or VM boundary, not just namespaces. Treat any container RCE as a potential host compromise and enforce rapid node recycling. 📌 Patch Status (4/5/26) Debian has released a patched downstream kernel; Red Hat Enterprise Linux has not yet done so. Check your vendor's security tracker. TL;DR: Disable algif_aead now, patch when your distro ships the fix, and revisit your threat model for shared-kernel workloads. Track advisories: CERT-EU · Red Hat Security · Ubuntu Security · CISA KEV #Linux #Kubernetes #DevSecOps #CVE #CyberSecurity #CloudSecurity #RHEL #Containers #KernelSecurity #CopyFail
To view or add a comment, sign in
-
-
“All Linux kernels released after 2017 are vulnerable to critical privilege escalation bugs. A tiny 732-byte exploit grants root privileges across all major Linux distributions, with containerized environments being especially vulnerable. The proof of concept and patches are publicly available. Attackers with initial access to a Linux system can run a tiny script as any unprivileged user, gain complete access, and even escape Kubernetes containers. Security researchers at Theori disclosed a critical logic flaw in the Linux Kernel that gives users a root shell. The proof-of-concept is just 732 bytes of Python code, using only standard library modules and requiring no extra dependencies. Dubbed Copy Fail, and tracked as CVE-2026-31431, the exploit is “a straight-line logic flaw,” requiring no race conditions or kernel-specific offsets.” A critical flaw in the Linux kernel, tracked as CVE-2026-31431 and nicknamed “Copy Fail,” allows attackers with basic system access to gain full root control. The exploit is extremely small and simple, requiring only a short script to work across most Linux distributions, including container environments like Kubernetes. The issue affects kernels released after 2017 and is caused by a logic error, making it reliable and easy to exploit. The vulnerability highlights how even small logic flaws in core system components can have widespread and severe impact. It also shows how containerized environments are not immune and can be used as stepping stones for deeper system compromise. It may be wise to prioritize kernel patching, monitor for unusual privilege escalation behavior, and review isolation controls within container environments to reduce potential impact. https://lnkd.in/dDPdj7QG #Cybertronium #CybertroniumMalaysia #LinuxSecurity #PrivilegeEscalation #KernelVulnerability
To view or add a comment, sign in
-
I spent hours debugging an SSH authentication failure on my Raspberry Pi cluster that had no right to be as hard as it was. The fix took 6 commands. The diagnosis took hours. Here is what made it difficult. I had just resolved the same SSH issue on a different node: wrong key character, invisible type, clean fix. So when the next node showed the same Permission Denied error, I was confident I knew what it was. I was wrong. The second node had correct permissions, correct ownership, and the correct key. No AppArmor confinement. No ACLs. No filesystem issues. Every check came back clean, yet SSHD still could not read the authorized_keys file. The lesson that stuck with me: two systems can have identical visible configurations and completely different underlying states. What you see with ls -la is not the full picture. Unix inodes can carry a state that standard permission checks will not reveal. When every visible variable checks out, and the system still misbehaves, stop adjusting what you can see. Delete and rebuild cleanly. The cluster is now fully managed by Ansible. All three nodes are returning SUCCESS. Tools I worked through to get there: sshd debug mode, strace, namei, lsattr, getfacl, ausearch, and tunne2fs. Each one ruled something out. This is the job. Debugging is not about knowing the answer. It is about being wrong efficiently until the answer has nowhere to hide. #DevOps #Linux #Anisble #RaspberryPi #HomeLab #SRE #CloudInfrastructure #OpenToWork
To view or add a comment, sign in
-