π Hello, super humans! If your site, your client’s site, or the forgotten blog on that old VPS runs PHP, today is a patching day. Two critical bugs landed this week, AI helped find them, and attackers did not wait politely for the maintenance window. Let’s dig in.
π° Quick Signals
- π§ AI: Anthropic opened a research-preview waitlist for Claude Duet, a proactive agent for US Pro and Max users that sends a morning brief, watches connected apps, and asks for approval before sending, paying, signing, or deleting anything.
- π€ Robotics: Dream Labs raised a $90 million seed round and opened the Dream API, which turns a robot’s camera feed and a plain-English instruction into motor commands for gripper robots from different makers.
- π» Programming: Vercel Labs open-sourced fx, an experimental coding agent written in Zig that runs as a CLI, a script component, or an embeddable library, including a WebAssembly build.
- β‘ Electronics: Qualcomm won key claims in its four-year IP fight with Arm, but the damages came to just $2.
- π‘ Telecom: Starlink added 1.6 million consumer subscribers last quarter to reach 13.6 million, short of Wall Street’s 2.3 million expectation, while consumer ARPU fell to $69 from $83 a year earlier.
The Big Story: PHP2Shell: two critical PHP bugs, found with AI help, put 5 million web hosts at risk
PHP still serves a huge share of the web, and these flaws need no login, so the clock between “patch released” and “someone scans for you” is measured in hours, not weeks.
What happened: On October 21, PHP shipped emergency releases for two critical flaws nicknamed PHP2Shell, CVE-2026-109618 and CVE-2026-109619, both allowing unauthenticated remote code execution as the web worker account. The fixed versions are PHP 8.5.12, 8.4.27, 8.3.36, and 8.2.35. Researchers at Calif, OpenAI, and Wiz found the bugs; the PHP advisory says every installation serving web requests could be exposed, and VirusTotal estimates more than 5.1 million PHP hosts are reachable online. According to the BBC, Finland temporarily shut government web services while Edinburgh council and the BBC took pages offline.
The details: Both bugs trace to one root cause: PHP can leave its memory in a corrupted state when a request ends abnormally. In CVE-2026-109618, per Tenable’s FAQ, running out of memory while internal request data is only partly initialized makes the cleanup treat that data as valid. CVE-2026-109619 is a use-after-free: state left over from one request points at freed memory that a later request on the same worker can use, which also enables memory disclosure. Both are rated CVSS v4.0 9.2 by the PHP security team (earlier circulating 10.0 scores were wrong, according to the PHP Foundation). Apache with mod_php is the highest risk, since a demonstrated exploit can fire before any application code runs; PHP-FPM, php-cgi, FrankenPHP, and LiteSpeed are affected too. Calif reports pre-authentication code execution against specific versions of WordPress, Drupal, Joomla, and Magento, and says the earliest affected code path dates to PHP 5.4.0.
The exploitation timeline is short. Amazon Threat Intelligence says it saw an attempt on October 17, four days before the patch, and Cloudflare’s CTO reported early attacks right after release, with WAF rules he described as a stopgap. Public proof-of-concept code exists but is unverified. On the AI angle, OpenAI’s disclosure post says AI helped find and weaponize the bugs, and calls the stretch between AI-assisted discovery and public disclosure a “Defender’s Window” in which maintainers can prepare fixes.
flowchart LR
A["Oct 17: Amazon sees an exploit attempt"] --> B["Oct 20: PHP warns admins to prepare"]
B --> C["Oct 21: patches ship, Cloudflare sees attacks"]
C --> D["Oct 21-22: Finland, Edinburgh, BBC take services offline"]
D --> E["Now: patch, or isolate"]
Warning
PHP 8.1 and older no longer get official releases. Minimal source backports exist for 7.4, 8.0, and 8.1, and some distributions and LTS vendors ship their own fixes, but PHP 5.4 through 7.3 has no fix at all. The workarounds (memory_limit=-1 set so apps cannot override it, session.upload_progress.enabled=0, and on PHP 8.5 fatal_error_backtraces=0, then restart every worker) reduce exposure but are not a complete fix.
Important
Our take: The headline is not that AI found a decade-old bug; it is that the gap between discovery and exploitation is now short enough that “we patch monthly” is a policy, not a defense. If you run PHP, today’s order of operations is: inventory every PHP version you actually serve (including containers and old WordPress hosts), patch or apply your vendor’s backport, and pull anything on PHP 7 or older behind a login or off the internet until it is migrated. I would treat the WAF rules as a seatbelt while you fix the brakes, because they only cover traffic that goes through that one provider.
ποΈ More News
π§ AI
- Recursive released Flint, a local coding model built by an automated AI research system, with 39.8 billion total parameters and about 2.5 billion active per token; Richard Socher says it exceeds 125 tokens per second on a MacBook Pro.
- OpenAI models and Codex are coming to Google Cloud customers through Model Garden and Google Cloud Marketplace, and eligible companies can apply existing Google Cloud spending commitments; general availability is planned in the coming weeks.
- Mistral and NVIDIA plan to connect Mistral models with NVIDIA simulation and computing tools for engineering design, plus public datasets and benchmarks for computer-aided engineering and chip-design agents.
- Perplexity’s JOLT trains one model as both teacher and student, with the teacher getting extra information such as verified solutions; Perplexity reports gains in math, coding, and agent tasks.
- HeyGen Voice Turbo ranked first on Artificial Analysis’ controlled-voice leaderboard with an Elo of 1,202 and is priced at $4 per million characters, versus $30 for HeyGen’s previous voice model.
- The BBC spoke with current and former Google DeepMind staff who question how much visibility Google has into Pentagon use of its AI; Google says public-sector contracts go through compliance reviews against its AI principles.
- Youth group Design It For Us wants Congress to pass AI protections by the end of 2027, including independent testing of large systems and liability when AI products cause harm.
π€ Robotics
- AGCO signed on to pilot Agility’s Digit humanoid at its Kansas plant starting in 2027.
- Avenda Health added a Surgery Mode to its Unfold AI platform, giving surgeons patient-specific 3D cancer maps during robotic prostate procedures.
- Gecko Robotics announced a $300 million contract with the US Navy; this one is sponsored content, so read the “core military capability” framing as the company’s own.
π» Programming
- Harbor, an agent evaluation framework, now runs each evaluation task in its own Docker-sandboxed microVM instead of a shared container, for reproducible agent evals.
- TornadoVM 7.0 automatically accelerates Java programs on multi-core CPUs and GPUs and works with mainstream JDK distributions.
- JEP 543 finalizes structured concurrency in JDK 28 after seven preview rounds, with no API changes from JDK 27 (code written for JDK 25 or 26 needs adjusting).
- Buildkite added pipeline-scoped secrets, new Model Context Protocol tools, and Linux arm64 support for its GitHub Actions compatibility layer.
β‘ Electronics
- An open-source linear capacitive encoder reaches about 40 micrometers of resolution using eight etched transmit antennas, a receive antenna, a reflector PCB, and an STM32.
- Someone got the KiCad PCB design tool running in a web browser for machines where it cannot be installed.
- A deep dive into how Intel’s 8087 math coprocessor handles floating-point addition and subtraction in hardware.
- Authors argue that benchmarks for AI chip-design tools should cover more than whether the generated output merely works.
π‘ Telecom
- AT&T signals it is open to more fiber acquisitions if the price and location are right.
- Toshiba introduced a quantum-safe network platform designed to scale more easily.
- Thailand’s AIS is buying an indirect stake in Lao Telecom in a $43.35 million deal.
π¨βπ» Code Corner
Patching starts with knowing what you run. This script checks a PHP version string against the fixed releases from this week’s advisory; pass a version as an argument, or let it ask the local php binary.
import re
import subprocess
import sys
# Fixed patch level per supported branch, from the PHP2Shell advisory.
FIXED = {(8, 5): 12, (8, 4): 27, (8, 3): 36, (8, 2): 35}
def check(version: str) -> str:
m = re.match(r"(\d+)\.(\d+)\.(\d+)", version)
if not m:
return f"cannot parse {version!r}"
major, minor, patch = map(int, m.groups())
fixed = FIXED.get((major, minor))
if fixed is None:
return f"{version}: no official fix for this branch, migrate or use a vendor backport"
if patch >= fixed:
return f"{version}: OK"
return f"{version}: VULNERABLE, upgrade to {major}.{minor}.{fixed} or later"
if __name__ == "__main__":
if len(sys.argv) > 1:
version = sys.argv[1]
else:
version = subprocess.run(
["php", "-r", "echo PHP_VERSION;"], capture_output=True, text=True
).stdout.strip()
print(check(version))
Tip
Distributions often backport the fix without bumping the version number, so a “VULNERABLE” result on a packaged PHP is a reason to check your vendor’s security tracker, not proof you are exposed. Run it per container image, since the PHP on your laptop says nothing about the one in production.
π§° Toolbox
- fx: Vercel Labs’ experimental Zig coding agent, scriptable via
fx ask --jsonand connectable to editors over the Agent Client Protocol; pre-1.0, so expect churn. - open-linear-scale: the open-source 40 micrometer capacitive linear encoder, with the sensor PCB and reflector designs plus STM32 firmware.
- Dream API: send a camera feed and an English instruction, get motor commands for gripper robots, with fine-tuning from a small batch of demos; the performance claims are the company’s own.
- KiCad in the browser: a way to run the PCB design tool without installing it, handy on locked-down machines.
- Harbor: an agent evaluation framework that isolates each eval task in its own microVM for reproducible results.
π Component of the Week (rotating)
Everspin PERSYST STT-MRAM (for example the 64 Mb EM064LXQADG13IS1T) is nonvolatile memory that behaves more like RAM than flash: Everspin’s CEO quotes about 20 to 30 ns latency, a -40Β°C to 125Β°C range, and QSPI parts in 64, 128, and 256 Mb sizes. It is in the news because NOR flash is scarce; TrendForce estimated NOR contract prices rose a cumulative 100% to 120% in the first half of 2026, and Everspin says MRAM’s price premium over NOR has shrunk from about 3x to about 1.5x. Real deployments cited include Astro Digital using the 64 Mb part as primary fail-safe boot memory on a GEO mission and OpenMV adding MRAM for configuration storage. A typical hobby use is a boot or settings store that must survive brownouts and never wear out; check current distributor pricing, since the article gives ratios rather than prices.
π From the Blog
- Turning Pixels Into Something the AI Can Eat: why clean, well-framed input frames decide how good your vision model looks, following a frame from raw light to model-ready data.
- Building Your First Neuron From Scratch: part 2 of Deep Learning Foundations, building a single neuron in NumPy and showing how training adjusts weights based on error.
- The Network Behind the Cameras: bandwidth budgeting, topologies, and segmentation for camera video; segmentation is the same habit that limits damage when a web server like this week’s gets popped.
π The Bot Saysβ¦
Vercel’s new Zig coding agent is called fx, and a GitHub issue already flags that it collides with the beloved terminal JSON viewer that owns the fx Homebrew formula. Ten-microsecond cold start, zero-second name check.
That’s all for today! Reply and tell us: how fast can you list every PHP version running across your stuff, honestly?

