SecuritylabAugust 25, 2026🇷🇺Translated from Russian

Dirty COW CVE-2016-5195: How a 2016 Linux Kernel Race Condition Still Enables Privilege Escalation in Embedded Systems

The 2016 discovery of CVE-2016-5195, widely known as Dirty COW, revealed a race condition in the Linux kernel’s copy-on-write mechanism. The flaw enabled a local attacker to modify memory pages that should have remained read-only, providing a primitive for writing to protected files or memory regions.

Although the vulnerability was fixed in October 2016 for mainstream distributions, many embedded devices continue to run unpatched kernels for years. Routers, IP cameras, industrial controllers, and similar hardware often ship with vendor firmware that is rarely updated, leaving the original bug intact.

What Dirty COW Actually Allows

Dirty COW does not grant root privileges directly. It supplies a write primitive that can alter files such as /etc/passwd or overwrite code in memory-mapped regions. Attackers must then chain this primitive with additional steps, such as adding a root user entry or modifying a SUID binary, to achieve privilege escalation.

Public proof-of-concept code repeatedly triggers the race by writing through /proc/self/mem while calling madvise(..., MADV_DONTNEED). Correct timing causes the kernel to drop the original copy-on-write page, allowing the attacker’s data to persist in the shared mapping.

Why Ready-Made Exploits Often Fail

Many public Dirty COW exploits assume a full GNU userland with /bin/sh and conventional login utilities. On embedded systems that use BusyBox, these assumptions break. The single BusyBox binary may lack the expected applet, the required symbolic link may be absent, or the arguments passed to execve may not match the applet’s expectations.

Another common target is vDSO, a small kernel-provided library mapped into every process address space. Because vDSO exists only in memory and not as a file on disk, overwriting its functions requires precise knowledge of the architecture, the exported symbols, and the exact function chosen by the exploit. Payloads must also be written in the correct instruction set and respect the target ABI.

Practical Checks Before Exploitation

  • Kernel version, build date, and presence of the Dirty COW patch
  • Processor architecture, endianness, and enabled mitigations
  • Available BusyBox applets and presence of login or su mechanisms
  • Existence and contents of SUID binaries
  • Presence and exported symbols of vDSO in process memory maps
  • Compatibility of the chosen payload with the system’s libraries and shell environment

Exploitation attempts should be performed only on isolated test systems with rollback capability, as race-condition bugs can corrupt data or crash the target.

The article concludes by pointing readers to the free “White Hacker” course on the CyberED platform, where the practical lab “Strange And Dirty” requires participants to adapt a Dirty COW exploit to a minimal BusyBox environment and complete the privilege-escalation chain.

Related articles

HabrVulnerabilities & Exploits

Fuzzy Logic in Cybersecurity: Reducing Vulnerability Queue by 7.5 Times with CVSS, EPSS and FSTEC Comparison

An information security specialist has developed a fuzzy logic system that prioritizes vulnerabilities far more effectively than traditional scoring methods. The approach uses linguistic variables and membership functions to handle the inherent uncertainty in exploitability and impact assessments. By integrating EPSS probability data with CVSS impact scores and vulnerability age, the model reduces the actionable backlog by a factor of 7.5. The implementation relies on the Mamdani inference algorithm and trapezoidal membership functions to produce smooth, human-interpretable urgency ratings. Detailed coverage checks and rule-base validation ensure no gaps exist in the decision space. Real-world testing on CVE-2025-49113 in Roundcube Webmail demonstrated practical advantages over rigid threshold logic. The method is positioned as a practical enhancement rather than a replacement for existing standards.

AntiMalwareVulnerabilities & Exploits

VLC Media Player Hit by Two Memory Corruption Flaws Exploitable via Malicious PNG and Rogue RealRTSP Server

Two vulnerabilities have been discovered in the VLC media player that allow out-of-bounds memory access. The issues affect versions from 3.0.0 through 3.0.23. CVE-2026-56711, rated 8.6 on CVSS 4.0, stems from an integer overflow when calculating image buffer sizes in PNG files, enabling attackers to trigger writes beyond allocated memory simply by opening a crafted image or loading it from a playlist. CVE-2026-73324, scored 6.9, resides in the RealRTSP module and permits a malicious server to send an oversized response string that causes reads past the end of a buffer due to a missing null terminator. Both flaws are present in official VideoLAN builds, although some distributions may exclude the RealRTSP component. No special configuration or plugins are required to trigger the issues. Until patched releases appear, users are advised to avoid opening images or playlists from untrusted sources and to refrain from connecting to unknown RealRTSP streams.

AntiMalwareVulnerabilities & Exploits

September Windows 11 Security Update KB5124008 Breaks Always On VPN Certificate Authentication

The September security update KB5124008 for Windows 11 has introduced a regression that disables Always On VPN connections using certificate-based authentication. The issue affects devices running Windows 11 versions 24H2 and 25H2 that connect to Remote Routing and Access Service (RRAS) and Network Policy Server (NPS) instances on Windows Server 2019. VPN profiles deployed via Microsoft Intune are impacted, with the failure occurring during the certificate negotiation phase of the IPsec connection. Users confirm the problem is reproducible: the VPN works before the patch, stops after installation, and resumes after patch removal and reboot. Microsoft has not yet acknowledged the regression or released a fix, leaving administrators to pause deployment through WSUS or Intune and open support cases with client and NPS logs. A potential workaround involves switching profiles to EAP-TLS, though its reliability remains unconfirmed.

HabrVulnerabilities & Exploits

API Token Lifecycle: From Issuance to Revocation and Secure Management

The article provides a comprehensive examination of the full API token lifecycle in browser-based applications, emphasizing that signatures alone cannot prevent token theft. It details risks introduced at issuance, storage, transmission, and revocation stages, including improper OAuth grant types and long-lived tokens. Key recommendations include short-lived access tokens, atomic refresh token rotation, and the use of Authorization Code Flow with PKCE for public clients. Storage advice strongly discourages localStorage and sessionStorage in favor of HttpOnly cookies or a Backend-for-Frontend pattern that keeps real tokens on the server. The piece also covers CSRF protections, rate limiting on authorization endpoints, and the advantages of signed client assertions over static secrets. Overall, it stresses that token security depends on the entire lifecycle architecture rather than cryptographic strength alone.