cybersec
CVE Reconstruction
Weekly CVE deep dives. Real-world analysis. No fluff.
CVE-2026-1615: When "Static" Evaluation Wasn't That Static
— static-eval was never the sandbox you thought
CVE-2026-22778: cannot identify image file `<_io.BytesIO object at 0x7a95e299e750>`
— PIL snitched, ASLR cried, three bits remained
CVE-2026-1802: When `os.execute` Met an HTTP Form Value
— A debug flag is forever, apparently
CVE-2026-25141: When Your String Escaper Forgets It's Also a Comment Escaper
— Six characters is a complete language
CVE-2026-31705: When the Padding Forgot to Ask
— The alignment ate the heap
CVE-2026-31635: When the Bounds Check Faced the Wrong Way
— one character, one workqueue, one panic
CVE-2026-24054: The Bind-Mount That Convinced Kata to Hotplug Your Host Disk
— stat dot dev is not consent
Fast16: The Ghost in the Machine That Predated Stuxnet
— When mathematics lies, the real world breaks
YellowKey and the BitLocker Zero-Days: What Just Got Disclosed
— When recovery becomes the attack vector
CVE-2026-22039: The Namespaced Policy That Wasn't
— the controller's token is not yours
CVE-2026-42897: An Exchange XSS That Microsoft Calls "Spoofing"
— encoders are contextual, parsers are unforgiving
CVE-2026-20888: The Cancel Button That Forgot to Ask Who You Were
— Two doors, one lock, predictable consequences
CVE-2026-22850: When Your Own Export File Comes Back As A Bomb
— stored data is still tainted data
CVE-2026-21683: When the Tag Lied About What It Was
— Trust the vtable, not the file
CVE-2025-69359: The WordPress LMS That Forgot to Ask Who You Are
— Permission callbacks are not vibes
CVE-2026-0640: When sscanf Became gets() Again
— scanf is still gets, apparently
CVE-2026-5194: The Digest That Wasn't Big Enough
— half a check is half your security
CVE-2025-59379: The Login Page That Answered Questions It Shouldn't Have
— Parameterise the query, hash the password
CVE-2026-21493: Type Confusion in iccDEV Curve Serializer — When a Type Tag Isn't a C++ Type
— Tag bytes aren't vtables, friend
CVE-2025-62718: The Trailing Dot That Leaked Your Localhost
— normalize before you compare, always