SShortSingh.
Back to feed

Developer Tool 'canfail' Tests Whether CI Guards Can Actually Detect Failures

0
·6 views

A developer has released canfail, a lightweight open-source tool designed to verify that CI pipeline checks are genuinely capable of catching errors, not just perpetually green by accident. The tool targets configuration files such as YAML, Terraform, and Dockerfiles — areas not covered by conventional mutation testing tools like Stryker. Users declare a specific code break, the expected failure output, and canfail applies the change, runs the check, and reports whether the failure was correctly detected. The tool enforces strict rules: the check must pass on a clean codebase first, failures must match the declared reason, and the modified file must be restored and verified by digest. A notable bug discovered during development revealed that stale Python bytecode cache could cause false positives, which was ultimately resolved using the PYTHONDONTWRITEBYTECODE environment variable.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Polyglot Files: How One Byte Sequence Can Fool Two Different File Parsers

A polyglot file is a single byte sequence deliberately structured to satisfy the syntax rules of two or more different file formats simultaneously. This is possible because different formats make different structural assumptions — some parsers only check the beginning of a file, while others, like ZIP, anchor their critical structures near the end. This leaves regions within the file where a second format's structures can coexist without conflicting with the first. Unlike simple extension spoofing, polyglot files genuinely pass content-level validation by multiple parsers, making them a subtle security concern. The phenomenon exploits gaps and tolerances in how file format specifications define required versus ignorable byte regions.

0
ProgrammingDEV Community ·

XZ Utils Backdoor: How a Near-Catastrophic Linux Supply Chain Attack Was Caught

In late March 2024, Microsoft engineer Andres Freund accidentally discovered a sophisticated backdoor hidden in XZ Utils, a widely used compression library present on most Linux and macOS systems, tracked as CVE-2024-3094. Freund noticed unusual CPU spikes and SSH login delays on his Debian system, which led him to trace the cause to a malicious, heavily obfuscated payload embedded in the liblzma component during the build process. The backdoor was designed to allow an attacker with a specific private key to bypass authentication and execute arbitrary code with root privileges on affected servers running systemd-patched SSH daemons. The attack was orchestrated over nearly three years by an actor using the alias 'Jia Tan,' who systematically built trust within the XZ project while coordinated fake accounts pressured the original maintainer, Lasse Collin, into ceding control. The incident has raised urgent questions about the security of open-source supply chains and the sustainability of relying on under-resourced volunteer maintainers for critical software infrastructure.

0
ProgrammingDEV Community ·

Next.js App Router skips keyboard focus on navigation, but a simple fix exists

The Next.js App Router includes a built-in route announcer that notifies screen readers of page changes via an aria-live region, but it does not reset keyboard focus after client-side navigation. When a user activates a link, the element unmounts and focus falls back to the document body, forcing keyboard users to tab through the entire header again on every route change. A 15-line client component using usePathname() and tabIndex={-1} can restore focus to the new page content, resolving the issue. The author discovered the bug through hands-on keyboard-only testing rather than automated audits. The fix has added urgency for many products since the European Accessibility Act became enforceable on 28 June 2025.

0
ProgrammingDEV Community ·

Over 90,000 Jupyter Notebooks Publicly Exposed, Posing Remote Code Execution Risk

A ZoomEye scan conducted on September 21, 2026, identified 90,626 publicly indexed Jupyter Notebook instances on the internet, representing an upper bound of potentially unprotected deployments. Jupyter Notebooks lacking authentication effectively grant any visitor shell access as the notebook's service user, enabling arbitrary code execution. Such exposed instances have previously been exploited in cryptomining and ransomware attacks, making them a well-documented security risk. The exposure often stems from analysts launching notebook servers outside formal IT oversight, binding them to all network interfaces and neglecting to enable token or password authentication, which has been Jupyter's default since version 5.0. Security experts recommend restricting notebook servers to localhost, enforcing authentication, limiting user permissions, and treating any publicly reachable Jupyter instance as a potential active incident.