sexta-feira, 23 de outubro de 2026

The Architecture of Trust: Maintaining Code Integrity in the Age of AI-Driven Development

Introduction

In the high-stakes environment of systems programming, particularly within the Linux kernel ecosystem, the debate often shifts between ideological preferences and technical necessity. As noted by industry veterans like Linus Torvalds, the provenance or origin of a code snippet should ideally remain secondary to its functional excellence and adherence to established integrity patterns. The primary objective in kernel development is not merely to write code, but to ensure that every contribution meets rigorous standards of stability, security, and performance. 🤖

However, as we enter an era dominated by rapid technological shifts, the definition of "quality" is being challenged by new methodologies. We are witnessing a transition where the focus moves from purely human-authored logic to a hybrid model involving automated generation. To maintain the sanctity of the codebase, engineers must navigate the tension between the efficiency of modern tools and the objective verification of technical merit. 🛡️

Technical Context: Infrastructure and Algorithmic Provenance

The underlying architecture of modern software development is undergoing a fundamental shift toward industrial mechanization. We are moving away from an era where manual code authorship was the standard, toward a trajectory where programming automation becomes the norm. ⚙️ This evolution introduces complex technical risks that extend far beyond simple syntax errors.

Model Collapse and Data Degradation: One of the most significant architectural risks is "model collapse." This phenomenon occurs when large language models are trained on synthetic data generated by other AI engines rather than organic, human-produced datasets. This creates a feedback loop that can lead to degraded information precision, where errors in the initial model are amplified through subsequent generations, eventually eroding the technical accuracy of the output. 🧠

The Provenance Dilemma: The infrastructure used to train these models often bypasses traditional copyright and free software licenses. This introduces layers of legal and technical uncertainty regarding algorithmic provenance. When an engineer cannot trace the lineage of a logic pattern, they risk introducing "black box" dependencies into critical system components, making audits and long-term maintenance significantly more difficult. The Rise of Synthetic Noise: Without strict oversight, the development pipeline becomes susceptible to "slop"—low-quality, unverified code patches that lack the deep contextual understanding required for low-level systems programming. This is often referred to as "drive-by patching," where the speed of generation outpaces the depth of comprehension. 🛠️

Practical Implications: From Productivity to "Slop"

For the professional engineer, the integration of AI into the development toolkit is not a binary choice between adoption or rejection, but a matter of controlled implementation. The practical application of these tools determines whether they serve as a force multiplier or a source of technical debt.

The Professional vs. The Unsupervised: Experienced developers utilize AI as an accelerator, leveraging it for boilerplate reduction, unit test generation, and pattern recognition within known constraints. In contrast, unsupervised usage—where code is committed without deep architectural scrutiny—produces "slop." This unverified output can introduce subtle regressions that are difficult to debug in complex kernel-space environments. 🔍

The Verification Mandate: The role of the human reviewer has evolved from a creator to a validator. Rigorous review processes are no longer optional; they are the primary defense mechanism against the degradation of code integrity. Every automated contribution must undergo the same level of scrutiny as a manual patch, ensuring that the technical quality remains the ultimate arbiter of merit, regardless of whether the logic was synthesized or hand-coded. 🛡️

Strategic Conclusion: The Future of Automated Engineering

As we look toward the future of software engineering, it is clear that the industry is moving toward a state of high-level orchestration. Manual code authorship will increasingly become an exception rather than the rule, reserved for the most complex architectural decisions and edge-case debugging. 🚀

To succeed in this landscape, organizations must implement strategies that prioritize technical integrity over mere output volume. This involves establishing robust CI/CD pipelines capable of detecting the subtle degradation associated with model collapse and ensuring that the legal and technical origins of all automated logic are transparent. By treating AI as a strictly regulated accelerator for competent professionals, we can harness its power without sacrificing the foundational stability that defines mission-critical software. 🏆



Fonte Original: https://www.theregister.com/columnists/2026/10/23/torvalds-ai-is-fine-for-competent-devs-but-spare-us-the-drive-by-patches/5304357

quinta-feira, 22 de outubro de 2026

Linux Kernel Vulnerability Reports Reach Public Lists Before Any Fix: What the ZDI Episode Means 🛡️

Introduction

In coordinated disclosure, timing matters as much as the flaw itself. On 21 October 2026, Trend Micro's Zero Day Initiative (ZDI) sent five Linux kernel vulnerability reports addressed to the private kernel security list, with the public Linux Kernel Mailing List (LKML) and subsystem lists in copy, and a sixth report had gone out the same way the day before. None of the flaws was fixed in the mainline kernel at that point. Greg Kroah-Hartman answered each report asking why it was sent without a patch to a public list, and asked ZDI to fix its submission process ⚠️. Administrators now know the where and the how of these flaws before their distribution ships a fix.

Technical Context: What Was Reported

The reports span the in-kernel SMB server, the network stack and specific drivers 🖥️:

  • Remote code execution in ksmbd: two reports rated CVSS 9.0 target ksmbd, the kernel's own SMB server. An integer underflow in SMB Direct requires an RDMA device, a writable share and SMB Direct enabled. A protocol dispatch race condition, where the handler for one SMB version runs on a buffer of another, needs a share with guest access. ZDI tested both on 7.3-rc3 🔓.
  • skb_zerocopy in the network stack: a local privilege escalation. Kernel developers had already received a report of the same issue from another source the week before, and a patch was expected soon.
  • Drivers and subsystems: an out-of-bounds write in the VMWGFX VMware graphics driver, leading to local privilege escalation, and an uninitialised resource in NVMET, the NVMe over Fabrics target, leading to information disclosure.
  • TCP search-domain query: a stack buffer overflow leading to local privilege escalation, reported the day before the others.
  • Patch status: for the SMB Direct underflow, a fix already sits in a branch prepared for Linux 7.5, and its maintainer asked the reporter to confirm it. The others had no fix in mainline at the time.

Practical Implications: Mitigation While Fixes Travel 🔧

The gap that matters is the time between a flaw becoming public and the distribution kernel that fixes it. With the reports on public lists, that gap is open for anyone who reads them. The two remote paths depend on ksmbd, which gives administrators a clear lever:

  • Disable ksmbd where it is not required. Both remote code execution reports need this server; without it running, they are out of reach.
  • Harden ksmbd where it stays. Disable SMB Direct when there is no RDMA hardware, and remove guest access from shares, which removes what each of the two reports requires.
  • Track the distribution kernel updates. The local privilege escalation and information disclosure flaws are fixed only by a patched kernel, so the next distribution kernel release that carries them is the one to schedule.

Strategic Conclusion

Disable ksmbd today wherever it is not needed, because it is the single component behind both critical reports and the only part of the six that a configuration change takes off the table. For the rest, the protection is the kernel update itself.

The episode also shows why the kernel's disclosure process insists on the private list: a public copy hands the details to everyone at the same moment it reaches the people who can write the fix.

Original report by Michael Larabel published on Phoronix on 22/10/2026, with the original messages in the public LKML archive.



Fonte Original: https://www.phoronix.com/news/LKML-New-Trend-Vulnerabilities

PHP Core Remote Code Execution: What CVE-2026-109618 and CVE-2026-109619 Mean and How to Contain Them

Introduction 🚨

On 21/10/2026 the PHP project released versions 8.5.12, 8.4.27, 8.3.36 and 8.2.35, fixing two memory corruption flaws in the language runtime itself: CVE-2026-109618 (remote code execution via out-of-memory corruption) and CVE-2026-109619 (remote code execution via stale global state). Both are rated 9.2 in CVSS 4.0 and classified as critical by the project. NVD scores them 9.8 in CVSS 3.1, while SUSE and Red Hat score them 8.1, giving attack complexity as high.

Because the defect sits in the interpreter, the application does not matter. Every PHP installation that serves web requests is in scope: PHP-FPM, Apache with mod_php, php-cgi, FrankenPHP and LiteSpeed. The highest risk is mod_php, where the project demonstrated an unauthenticated request that triggers the attack before any application code runs.

Technical Context: Two Ways to Corrupt a Request 🔓

Both flaws are use-after-free conditions in request lifecycle handling:

  • CVE-2026-109618, out-of-memory corruption: PHP used longjmp() to leave the current context on an out-of-memory error. Request memory could be reachable before it was fully initialised, so a failed allocation left it invalid, and request shutdown then read or branched on that state. The advisory describes multipart parsing routes to the out-of-memory condition: a request without a usable content length, unlimited headers per part, and empty file controls combined with nested field names. Apache mod_php runs request shutdown even when startup fails, which exposes the invalid state before the application runs.
  • CVE-2026-109619, stale global state: worker-retained state (error, session, object and extension state) points into request-owned memory and must be reset before that memory is released. A fatal error, including an out-of-memory or an execution timeout, can abandon an operation before the reset, and a later request on the same worker uses the stale pointer. Confirmed paths are session upload progress, validated against mod_php and FPM, and PHP 8.5 with fatal_error_backtraces enabled.

The fix removes longjmp() from out-of-memory handling, replacing it with a delayed soft limit at the next safe point of the virtual machine and an immediate hard exit at a higher threshold 📊.

Who Found It and Exploitation Status ⚠️

According to the PHP Foundation, the first signs of the out-of-memory problem appeared in 2024, while a core developer fixed an issue from the Quarkslab audit, without a concrete attack vector. On 11 August 2026, Ryan A of Calif and OpenAI independently reported an unconditional remote code execution with the same root cause. Wiz reported further vectors on 24 August and OpenAI more on 18 September. The project does not state when the defect was introduced; Help Net Security describes the flaws as present for decades.

The disclosure did not go as planned. On 20 October the CVE identifiers circulated early with a wrong score, Calif published a proof-of-concept video by mistake, and on 21 October fixed container images went out more than six hours before the embargo. The PHP security team had not identified a functional exploit at release time, but proof-of-concept activity increased afterwards. Amazon Threat Intelligence recorded an exploitation attempt on 17 October, four days before disclosure, according to Help Net Security, and NetSPI reports exploitation confirmed in the wild since 21 October. Cloudflare deployed initial WAF rules for known vectors.

Installations still on PHP 7.x or 8.1 receive no official release from the PHP project, only minimal source backports or a distribution vendor fix.

Practical Implications: Updating and Containing 🔧

Updating is the only complete fix. Install the patched package from the distribution and then restart every PHP worker and the web server, since an already running worker keeps the vulnerable code in memory. On SUSE Linux Enterprise Server 15 SP7 the fixed php8 8.3.36 package is published as SUSE-SU-2026:4844-1 and installs with zypper patch; SUSE Linux Enterprise Server 16.0 has 8.4.27 in QA. Red Hat publishes its procedure in bulletin RHSB-2026-013.

Until the package arrives, the project lists measures that reduce specific attack paths without making an installation safe:

  • memory_limit=-1, pinned so applications cannot override it, for example with php_admin_value in the FPM pool or the Apache configuration. Use a container or cgroup limit as the availability boundary, never RLIMIT_AS or RLIMIT_DATA, which can cause the vulnerable allocation failure.
  • post_max_size low: 8M when there are no uploads, 32M when there are, with upload_max_filesize below it.
  • Request limits at the web server or proxy: decoded size, number of input fields, multipart parts, headers and nesting depth, including requests without a usable Content-Length.
  • session.upload_progress.enabled=0, and on PHP 8.5 fatal_error_backtraces=0, followed by a restart of every worker.
  • Settings applied through php.ini, the FPM pool or the server configuration, never through ini_set() or .user.ini, and invalid or deprecated per-request settings removed, since their diagnostics run before initialisation.
  • pm.max_requests=1 on FPM, where performance allows, to shorten the life of stale state.

Strategic Conclusion 🛡️

Patch the PHP package and restart every worker today, starting with servers running Apache mod_php, because that is where the project demonstrated remote execution without authentication and before any application code. The configuration measures buy time on systems that cannot be updated at once, and PHP 7.x and 8.1 installations need a plan that ends on a supported branch.

Security announcement published by the PHP project on 21/10/2026, with the PHP Foundation timeline, the php-src advisories and SUSE bulletin SUSE-SU-2026:4844-1.



Fonte Original: https://www.php.net/archive/2026.php#2026-10-21-5

quarta-feira, 21 de outubro de 2026

The Rise of AI Slop: Navigating the Influx of Low-Quality Contributions in Open Source

The landscape of open-source development is undergoing a seismic shift driven by the rapid integration of Generative AI. While the promise of increased velocity is undeniable, a new phenomenon known as "AI Slop"—uncritical, unverified, and low-quality code generation—is beginning to clog the very pipelines that sustain global digital infrastructure. Recent findings from Linux Foundation researchers highlight a troubling trend: approximately 25% of all pull requests received by maintainers are now classified as AI slop. In large-scale, mission-critical projects, this figure climbs even higher, with up to 31% of incoming contributions consisting of low-quality noise that threatens to overwhelm the entire review ecosystem 🤖.

Architectural Impact and Infrastructure Strain

From a structural perspective, the influx of AI-generated content is not merely a matter of "bad code"; it is an architectural bottleneck. The fundamental workflow of open-source maintenance relies on a high-signal-to-noise ratio to ensure that human cognitive load is directed toward complex logic and security vulnerabilities. When the volume of submissions spikes due to automated, uncritical generation, the review pipeline becomes congested.

The data presents a striking paradox in developer productivity:

  • Efficiency Gains: AI automation has successfully reduced average code writing time by 52%, allowing for rapid prototyping and boilerplate generation.
  • Latency Bottlenecks: Conversely, complex tasks show increased latency for 21% of developers, as the effort required to audit "slop" outweighs the speed of its creation.
  • Governance Deficit: There is a massive gap in formal infrastructure management, as only 35% of active projects possess explicit governance policies regarding the usage of Generative AI.
Without formal guidelines, the infrastructure of open source becomes a dumping ground for unvetted outputs, turning a collaborative engine into a high-latency processing queue 📊.

Practical Implications: Operational Exhaustion and Security Risks

The practical consequences of this trend extend far beyond simple code reviews. We are seeing a phenomenon of operational exhaustion among maintainers of essential core projects, such as the curl project. These engineers, who act as the gatekeepers for much of the internet's underlying plumbing, are now facing an unprecedented surge in duplicate reports and false positives generated by AI-assisted bug-hunting tools 🛡️.

The impact ripples through different organizational layers:

  • Maintainer Burnout: The sheer volume of unvetted pull requests forces maintainers into a state of constant triage, where they must distinguish between genuine innovation and automated noise.
  • Security Triage Collapse: Security teams are particularly vulnerable. They are now forced to process an influx of low-severity vulnerabilities that appear in public repositories, often triggered by AI tools misidentifying patterns. If not managed, this can lead to a total collapse of the security triage pipeline ⚠️.
  • Technical Debt Accumulation: Uncritical use of GenAI introduces subtle logical errors that may pass automated tests but fail under edge-case architectural constraints, creating long-term maintenance burdens.

Strategic Conclusion: From Burden to Engine

To prevent the degradation of the open-source ecosystem, we must move beyond the uncritical adoption of AI tools. The transition from viewing AI as an operational burden to utilizing it as a secure participation engine requires a dual-pronged strategy. First, project maintainers must implement clear, formal usage policies that define the boundaries of acceptable AI contribution. Second, there is a critical need for the development of advanced automated filtering and validation tools designed specifically to intercept "slop" before it reaches human reviewers.

The goal is not to reject automation, but to refine it. By integrating intelligent pre-submission validation layers, we can ensure that the efficiency gains of AI are not neutralized by the overhead of its errors. We must transform the current wave of noise into a structured stream of high-quality, verified intelligence 🔧.



Fonte Original: https://www.theregister.com/ai-and-ml/2026/10/21/ai-cuts-coding-time-but-its-also-filling-open-sources-inbox-with-crap/5304389

domingo, 18 de outubro de 2026

Twenty-Five Years of Suspicion, Explained: How the NIST Elliptic Curve Seeds Were Generated

Introduction 🤖

In 2000, NIST published FIPS 186-2 with a set of elliptic curves that went on to secure TLS, SSH, code signing and countless embedded devices. Each of those curves was built from a seed: a public number fed into a hash to derive the curve parameters. The seeds came from the NSA, with no explanation of how they were chosen, and that silence kept a question open for more than 25 years: could the agency have searched for seeds that produced curves with a weakness only it knew about?

On 16/10/2026, Anthropic's Frontier Red Team published the answer. An internal Claude research model, given the published seeds and no prior theory, found in under half an hour that they are outputs of an ordinary C library random number generator seeded with the clock of a computer running in 1997 and 1998. The result is not a break of ECDSA, not a new attack and not a weakness in the curves, as the authors state explicitly.

Technical Context: How a Verifiably Random Curve Is Built 🔐

The NIST curves follow the "verifiably random" method from ANSI X9.62. A seed goes into SHA-1, and the hash output determines the curve coefficient b. The idea is that nobody can pick b directly: anyone can recompute the hash and confirm the curve came from the seed. The weak point of the method was always the seed itself. If whoever generated it could try millions of seeds and keep the one that produced a curve with a hidden property, the hash would only hide the choice.

The reconstruction shows how the seeds were actually produced:

  • Generator: lrand48, the 48-bit linear congruential generator of the C standard library, initialised with srand48(time), where time is the machine's Unix timestamp.
  • Prime-field curves: P-192, P-224, P-256, P-384 and P-521 match timestamps between May 1997 and April 1998. The P-256 seed corresponds to 16 August 1997.
  • Binary curves: B-233, B-283, B-409 and B-571 match the same method with the clock halved; read raw, the timestamps fall in February 1984, and doubled they land on 17 April 1998.
  • Example curves of ANSI X9.62: prime192v2, prime192v3 and prime239v1 to v3 were recovered as well.
  • Base points: for P-192 and the ANSI prime curves, they come from the random number generator of Arjen Lenstra's FreeLIP library, which early versions of Victor Shoup's NTL also shipped.

The earlier theory, that the seeds were the hash of a humorous passphrase, turned out to be wrong. The authors released reproduction code under CC0, and its outputs match the published seeds and base points 📊.

Practical Implications: What Changes and What Does Not ⚠️

For anyone running P-256 or P-384 today, nothing changes. The seeds were always public, so recovering how they were made exposes no secret, and private keys generated on these curves are unaffected. What changes is the weight of the backdoor hypothesis. A simple, reproducible generator fed by the clock leaves little room for a deliberate search for weak curves; the authors note that such a search would only succeed if weak curves were common and easy to find, which would be a problem of its own.

The result does not close every question, and the authors are explicit about the gaps:

  • Some viable candidate seeds were skipped for unknown reasons; for P-256, candidate 876 was passed over.
  • The number of times the generation program ran is unknown.
  • The seed of the fifth binary curve, B-163, remains unexplained.
  • The base points of P-224, P-256, P-384, P-521 and the NIST binary curves remain unexplained.

There is also a side lesson. A clock-seeded lrand48 is perfectly adequate for producing public parameters, and completely inadequate for producing secret keys: anyone who knows roughly when such a key was generated can recreate it. The NIST seeds were safe only because they were never meant to be secret.

Bitcoin sits outside this discussion. It uses secp256k1, a curve defined by two small fixed numbers rather than a hashed seed, so the question of a manipulated seed never applied to it.

Strategic Conclusion 🛡️

Keep the NIST curves where they are deployed. The research gives no reason to migrate, and the reproduction code lets any team verify the claim instead of trusting it. Curve choice still deserves attention for a different reason: quantum computing threatens elliptic curve cryptography regardless of how a curve was generated, and post-quantum migration plans should move forward on their own schedule.

The episode also shows the value of transparency in standards. Parameters published with their full derivation, as later designs such as Curve25519 did, never need a 25-year investigation. The $36,864 bounty organised by Filippo Valsorda for the seeds will be donated to the Internet Security Research Group, the non-profit behind Let's Encrypt, and the authors honour the memory of NSA mathematician Jerry Solinas, who died in 2023.

Original research published by Anthropic's Frontier Red Team on 16/10/2026, reported by Shaurya Malwa on CoinDesk on 17/10/2026.



Fonte Original: https://www.anthropic.com/research/ecdsa-curve-origins