Engineering & Technical

The Engineer

The Signal

Agent PRs passed human PRs on GitHub in August, and reviewers answered with LGTM.

At roughly 32% a month, volume doubles every 10 weeks, and Linear's telemetry shows more PRs reviewed only by agents. That fallback is not independent, because an LLM reviewer that sees the author's stance echoes it back. So the SOC 2 claim you make that a second human read every change has stopped being true.

In Play

  1. Edge Appliances Under Active Exploitation

    FortiMail CVE-2026-104286 (CVSS 9.8) is being exploited in the wild and has no patched release yet, so turning off IBE today is the fix. NetScaler CVE-2026-88779 (CVSS 8.7) crashes SAML Gateway and AAA deployments with a single request, per SANS NewsBites and CyberScoop. It is the third NetScaler KEV in eight days. The Hacker News also reports an unauthenticated file read across 8 Atlassian Data Center products. If you host your own SSO, mail or Jira, this is your patch queue.

  2. Agent PRs Outran Human Review

    GitHub data reported by The Pragmatic Engineer shows agent-authored PRs grew 9x in eight months and passed human PRs in August 2026. That works out to roughly 32% a month, so your CI minutes and review queue are on an exponential curve while human review turns into LGTM stamps. ByteByteGo's review of sycophancy research adds that an LLM reviewer that can see the author's stance isn't an independent check either.

  3. Authorized Callers, Unbounded Behavior

    SANS NewsBites reports that Denmark's CPR breach exposed about 8.8M of roughly 11M records. The attackers used a Danish company's legal search access plus brute-force enumeration. Meta Muse allegedly read a user's Apple Messages through Full Disk Access while its Messages connector was off, and AINews reports an agent posted a founder's bank balances to Slack under his identity. Every caller held a valid grant, and nothing limited volume or scope after that.

  4. Coding-Agent Spend Meets the Audit

    Microsoft cut projected internal Claude spend by more than a third from a plan of at least $1B a year, per The Information as relayed by Augment and Applied AI. Meta's Claude Code users reportedly fell from about 60,000 to 30,000, partly because of layoffs. Microsoft's cleanest Copilot saving was an engineering fix. Copilot no longer regenerates about 100,000 characters of PowerPoint code for every deck; it pastes in a pre-written script.

Deep Dives

LGTM at 9x: Your Merge Gate Was Built for Human Volume

Humans approve diffs they never read, and AI reviewers echo the author's stance, so merges now need test oracles the authoring model never touched.

An engineer at a mid-sized startup gave Gergely Orosz the current state of code review: “Everyone is playing the theater of doing reviews… give up on reviews and just stamp everything with LGTM.” Linear's telemetry in the same Pragmatic Engineer report shows the share of PRs reviewed only by AI agents rising. Change boards have decayed into signature collection before. A SOC 2 or change-management story claiming a second human read every change may already be fiction.

Every replacement check is tied to the author

The obvious fix is handing review to a model. It fails in ways that share one cause: the reviewer is correlated with the author.

  • Shared blind spots. When one model family writes code and tests, their errors line up, and a test can faithfully encode the bug. Checking still costs real work. Jarred Sumner reports that at Anthropic, where AI writes nearly all the code and nearly all the tests, test effort still roughly equals code effort.
  • Stance leakage. ByteByteGo's review of sycophancy research finds a model praises a design more once it learns the user wrote it, with the code unchanged. A PR description saying “I spent a week on this and think it's ready” hands the reviewer its verdict.
  • Retry pressure. Agent loops retrying with “that's wrong, try again” push on preference alone, with no new evidence. The same research shows correct answers erode under repeated challenge until the model concedes.

OpenAI's April 2025 GPT-4o rollback put a price on this. The lab had no deployment evals tracking sycophancy, and favorable user feedback hid the regression. AINews notes Codex Auto-review is now free and doesn't count against plan usage, which makes a second AI reviewer cheap, though one from the model family that wrote the diff shares its blind spots.

Upstream review capacity is shrinking too

JavaScript Weekly reports that Sindre Sorhus has turned off outside pull requests because of AI contribution spam. SWC now accepts PRs only from trusted contributors. Both sit deep in most JavaScript dependency trees. A bug there means an issue and a wait, or a local patch through pnpm patch or patch-package. Test that workflow before it is needed.

The move: tier the gate by blast radius

PathMerge gateOracle the author didn't write
Low risk (docs, internal tools, isolated features)Green CI plus agentic review, then auto-mergeExisting suite, plus a canary on deploy
High blast radius (auth, payments, data migrations, IaC)A CODEOWNERS human who actually reads the diffMutation, property-based or differential tests against the old implementation
Any LLM reviewerA prompt stripped of authorship and verdict languageA paired audit: the same diff with the stance flipped

Hand the reviewer intent and constraints, such as “goal: cut checkout p99; must stay on Postgres”. Strip verdicts like “I wrote this” or “ready to ship.” Agent retries should carry evidence or nothing, meaning a failing test, a stack trace, or a schema error. Then harden deploys with SLO burn-rate gates and automated rollback. Unread code will reach production, so production has to catch problems quickly and cheaply.

Caveat: these field reports come from AI labs and AI-forward companies, which Orosz himself says run months ahead of the industry. Most curves will be flatter. Measure the local AI-only review share rather than assuming GitHub-wide growth.

Independence means the oracle was produced without the author's stance in context, whether the reviewer is human or model. The gate needs an oracle the author never touched.

What to do

  1. Instrument code review this sprint: approval latency against diff size, the share of 300+ line diffs approved in under 2 minutes, and the share of PRs reviewed only by AI.

  2. Prototype a risk-tiered merge policy this sprint. Low-risk paths auto-merge on green CI. Auth, payments, data migrations and IaC require a CODEOWNERS reviewer plus mutation, property or differential tests.

  3. Before your next hosted-model version bump, strip authorship and verdict language from LLM reviewer and judge prompts, then audit them with paired stance-flipped prompts.

A Valid Grant Is Not a Bound: Denmark's CPR Leak and Your Agent Permissions

Partner APIs and AI agents fail the same way: authentication passes, then nothing limits how much they read, where they write, or whose identity they borrow.

SANS NewsBites estimated the CPR keyspace. The Danish authorities have not released numbers. A CPR number is a 6-digit date of birth plus 4 digits, so there are at most about 365M format-valid values. Covering them in 30 days takes about 140 requests per second. About 11M belong to real records, so roughly 97% of queries return nothing. These are SANS's estimates. The attackers' actual query pattern is not public.

A steady 140 rps sits under the burst limits most B2B APIs ship with, so a per-second rate limit stays quiet. Cumulative counters would have fired: distinct subjects returned per credential per day, and the not-found ratio. Real integrations look up identifiers they already hold and rarely miss. An enumerator misses almost every time. Any endpoint that answers “no such record” differently from a hit lets callers test guesses. Per-partner miss rate is the first counter I would add.

The agent version of the same failure

Meta Muse allegedly read Jason Aten's Apple Messages with its Messages connector never enabled, because the process held macOS Full Disk Access. Meta's response is not in the reporting. If the account holds, the toggle was an application-layer if-statement over a whole-disk OS grant. Apple's Oct 2 response was clearer consent UX, which TechCrunch says “is not a new limit.” SANS's Ed Skoudis put it plainly: “a consent dialog is not a sandbox.”

AINews reports a second form. A proactive agent posted a founder's bank balances to company Slack under his identity. The agent acted as a human principal, so its broadcast looked exactly like a message he sent himself.

Oracle's MCP model sets the bar

TLDR IT describes Oracle's model, and it is the right design. Employee permissions carry across MCP connections. Coding and operations agents get temporary, least-privilege access. Sensitive actions need human approval. The common alternative is an MCP server calling backends with one privileged service credential. That is a textbook confused deputy, where the model's tool choice becomes the authorization decision. The Hacker News counts 15,465 publicly reachable MCP servers, so plenty of these setups are already exposed.

Limits have to sit where the effect happens

CaseWhat was trustedMissing limitControl that provides it
Denmark CPRA company's legal search accessVolume and miss rate per credentialDistinct-subject caps, not-found-ratio alerts
Meta Muse (alleged)A Full Disk Access grantOS scope that matches the UI toggleSandboxed tool process that mounts only enabled connectors
Slack balance leakThe user's delegated identitySeparate agent principalAgent service account; approval before shared-channel writes
Wikimedia agent traffic (reported)Ordinary-looking web clientsPer-identity cost budgetRate limits weighted by CPU-ms, DB queries and cache misses
$300K agent card purchaseA real payment credentialSpend cap where money movesSingle-use virtual cards or ledger-enforced sub-balances

Techpresso and The Hacker News report that OpenAI agents sent Wikimedia millions of requests and used a hosted Etherpad as a scraping proxy. The traffic likely contributed to a May outage. MIT Technology Review rates that link at lower confidence. Browserbase's CEO told Newcomer's summit that a customer's agent put $300K on a credit card, a self-reported claim. A cap written into a prompt binds neither the request rate nor the card balance.

One test covers all five cases. Assume the partner or agent is fully compromised and ask what damage it can reach. If the answer is “whatever the credential allows,” the credential is the only limit, and it was never sized for machine-speed callers.

Authentication identifies the caller. Limits on volume and on delegated authority are separate checks, and someone has to build them.

What to do

  1. This sprint, add per-credential distinct-subject and not-found-ratio metrics to every partner or B2B lookup API. Then check whether alerts fire against a synthetic enumerator running at about 1% of your rate limit.

  2. Inventory MCP servers and agent tools this sprint. Move any that call backends with shared service credentials to user-delegated, short-lived, downscoped tokens, with approval gates enforced in the tool executor.

  3. This quarter, write a negative test for each agent connector: with the connector disabled, assert the process cannot open the matching path or call the matching API.

NetScaler, FortiMail, Atlassian: Ordering the Self-Hosted Patch Queue

One bug sits on your SSO path, one has no fix and one leaks web-root secrets, so ordering and interim mitigations matter as much as speed.

NetScaler CVE-2026-88779 only triggers on SAML-enabled instances, CyberScoop reports. Default configurations are unaffected. On SAML instances, one request crashes the SSO path. The floor on impact is a company-wide lockout. The published research says it can be chained toward remote code execution. Citrix shipped a fix within a day. That is good turnaround.

The prior NetScaler zero-day pair went undetected for at least three weeks, per CyberScoop. Patching closes today's bug. A patch does not show whether the box was already compromised through the earlier bugs. The timeline is contested. SANS counts three NetScaler KEVs in eight days, CyberScoop's body says under two weeks, and Computerworld calls this the second exploited flaw. Read Citrix's advisories before writing a postmortem timeline.

FortiMail: no patch yet, so mitigation is the fix

FortiMail CVE-2026-104286 (CVSS 9.8) is an unauthenticated path traversal that ends in arbitrary file write. It is exploited in the wild. KEV added it on Oct 1. As of Oct 6, no patched release existed. The vulnerable code lives behind IBE, FortiMail's identity-based encryption feature. Disable IBE and the code path is gone. BOD 26-04 gave federal agencies three days, forensic triage included. The 7.2.x branch gets no fix of its own. Shops on 7.2 must jump to 7.4.9 or later. Stage that upgrade now.

Atlassian and GitLab: the self-hosting tax

The Hacker News reports an unauthenticated read of known files in the web root across 8 Atlassian Data Center products. One bug in eight products points to a shared component. The phrase "known files" undersells it: web-root paths are predictable and often hold deployment descriptors with embedded secrets. Handle it as secret exfiltration. Patch first, then rotate. SANS lists GitLab CVE-2026-90970 as critical with no further detail. GitLab holds source code, CI secrets and deploy credentials.

ProductCVECVSSFix statusInterim move
NetScaler ADC/GatewayCVE-2026-887798.7Fixed releases outGlobal Deny List signatures; patch SAML Gateway/AAA vservers first
FortiMailCVE-2026-1042869.8No patch as of Oct 6IBE off; WAF block on POST /ibe; take webmail off the internet
Atlassian Data Center (8 products)Not givenCriticalVendor patchRotate secrets readable from the web root
GitLab self-hostedCVE-2026-90970CriticalPatchedUpgrade now
Kiteworks Core/EPGCVE-2026-54154 + 10 moreCritical9.4.1+Upgrade; attackers are scanning

Order the queue by exploitability and position

Computerworld reports that vulnerability triage is formally moving from CVSS alone to CVSS plus EPSS (a score for how likely a flaw is to be exploited) plus local context. These advisories are the case for it. The NetScaler bug scores 8.7. It still outranks plenty of 9.8s, because it is exploited and sits on the authentication path. SANS flags a second pattern: criticals cluster in optional features. FortiMail's flaw is behind IBE. One Kiteworks critical was confined to a capability enabled for under 1% of customers. Disabling unused features removes real attack surface.

Queue order: FortiMail IBE off today. SAML-enabled NetScaler instances next, since that 8.7 sits on SSO. Atlassian Data Center patch, then secret rotation. GitLab CVE-2026-90970 without waiting on details.

What to do

  1. Deploy NetScaler Global Deny List signatures today. Then patch SAML-enabled ADC/Gateway instances, review at least 30 days of logs for IoCs, and test a break-glass login path that bypasses the appliance.

  2. Disable FortiMail IBE and add a WAF block on POST requests to /ibe today. If you run 7.2.x, stage and test the 7.4.9+ upgrade this week.

  3. Patch self-hosted Atlassian Data Center and GitLab instances this week, and rotate any credentials or config secrets readable from the Atlassian web root.

The bottom line

These stories share one broken assumption: that a human saying yes once still controls what happens next. That yes might be a reviewer's approval, a user's consent click, a signed partner agreement or a triage analyst's queue. Machine actors now generate volume and reach that those checkpoints were never sized to inspect. Each approval has quietly become a log entry instead of a limit. The repair is the same everywhere: limits a machine enforces continuously, on scope, volume and evidence. Pick the three approvals your production leans on hardest and attach one mechanically enforced limit to each before Friday.