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
Critical Authentication Bypass Vulnerability Found in OAuth2 Proxy, No Patch Released
A severe authentication bypass vulnerability has been identified in the OAuth2 Proxy authentication proxy, tracked as CVE-2026-76835. The issue allows attackers to circumvent authentication by sending crafted X-Forwarded-Uri headers when the trusted_proxy_ip setting is not configured. This affects default reverse proxy configurations and enables unauthorized access to protected paths. Although version 7.15.2 addressed a related flaw under CVE-2026-40575, the vulnerability persists in standard reverse proxy setups. VulnCheck rated the flaw with a CVSS v4.0 base score of 9.3, classifying it as Critical. No patched release is currently available despite ongoing work in the source repository.
Starting in Bug Bounty: Understanding 1-Day Vulnerabilities
Mikhail Klyuchnikov, known in the bug hunting community as n1, shares his decade-long experience at Positive Technologies leading a team focused on software security analysis. The team specializes in discovering new zero-day vulnerabilities while also reproducing known 1-day issues to support penetration testing engagements. Klyuchnikov is also a member of the PT SWARM team, which regularly publishes technical articles, tips, and timely vulnerability breakdowns. With extensive participation in international bug bounty platforms and the Russian Standoff Bug Bounty program, he aims to explain the practical role of 1-day vulnerabilities for newcomers entering bug bounty hunting. The article provides foundational knowledge on how security researchers leverage publicly disclosed vulnerabilities in real-world testing scenarios.
Keycloak Fixes Critical CVE-2026-18963 Password Reset Flaw Allowing Unauthenticated Account Takeover
Keycloak has patched a critical vulnerability tracked as CVE-2026-18963 that lets remote unauthenticated attackers force a password reset for any user and seize control of the account. The flaw affects the reset-credentials flow due to improper state validation, enabling attackers to bypass email verification and reach the password change endpoint directly. With a CVSS 3.1 score of 9.1, the issue requires no privileges or user interaction and impacts confidentiality and integrity. Patches are available in Keycloak 26.7.2 and corresponding Red Hat Build of Keycloak releases 26.4.15 and 26.6.6. Organizations unable to update immediately should disable the Forgot password feature across all realms. Post-remediation auditing of login events and credential changes on privileged accounts is recommended to detect any prior exploitation attempts.
Sky Discloses Five Vulnerabilities in SKYSEA Client View and SKYMEC IT Manager
Sky has released a security advisory detailing five vulnerabilities affecting its IT asset management tools SKYSEA Client View and SKYMEC IT Manager. The flaws impact all Windows-based components including master servers, management machines, terminal machines, and standalone terminals. Two issues received CVSSv4 base scores of 8.5 while the remaining three scored 5.8, with CVSSv3 scores reversing the severity ranking for some entries. The vulnerabilities include missing authorization checks, improper file permissions during installation, multiple path traversal flaws, and a stack-based buffer overflow. Sky has made update and patch modules available to contracted customers and strongly recommends immediate deployment.