Content Quality: News piece, 901 words (range 400-1200). Clear structure: Overview, What We Know, Guidance for Maintainers, Related Research, What We Don't Know. Title is 149 characters (cap 150). Single-sourced on The Hacker News for the research, with the GitHub changelog for the policy.
Source Verification: Read both snapshots (gunzipped, tags stripped) from sources/2026-10/<slug>/: source-0.html.gz (The Hacker News, Oct 13, 2026, 200 OK) and source-1.html.gz (GitHub changelog, October 2, 2026, 200 OK). suspicious_patterns is null for both. Source-0 confirms verbatim: 'The cybersecurity company said it found over 1,500 vulnerable packages that have been collectively downloaded more than 10 million times'; 'The findings were reported to GitHub on June 6, 2026'; 'An attack of this kind, codenamed SlugFest'; trusted publishing introduced 'in npm in July 2025'; Myers slug quote ('It records the repository's address, [...] instead of the permanent ID GitHub assigns it, at least until a version is first published from that repository') with the lock/house analogy omitted by the article; Myers 'The attack requires no insider knowledge, no credential theft, and no race condition' and 'The only precondition is slug availability (on a binding that has not yet been used to publish), which is entirely a function of the victim's own repository hygiene' (article quotes the tail fragment accurately and paraphrases the precondition); Bloom Security quote 'Agents resolve dependencies on their own, tend to take the latest version, and rarely check where a package came from' with the 'no human-in-the-loop' continuation paraphrased; the four attack steps; numeric repository IDs 'completely ignored by npm until the first successful publish'; the maintainer guidance bullets (all four present in the snapshot); the documentation sentence ('within two days ... repository's immutable identity'); Extension Resurrection (August, 87 Open VSX packs, 677 VS Code Marketplace packs). Source-1 confirms: October 2, 2026 date; 48 hours after creation; 'can no longer authorize publishing'; 'limits the risk of trusting a repository or project name that changes ownership'; validated/exempt after first successful publish; fresh 48-hour window on identity change; issue_comment rejection alongside pull_request_target. Attribution check: the 1,500/10M figures, June 6 date, SlugFest codename and Myers quotes are all attributed to The Hacker News (relaying Bloom); the changelog is cited only for the policy. The article correctly states the changelog does not mention the research or the count. Live re-fetch: WebFetch of The Hacker News matched the snapshot on the 1,500/June 6/codenamed/'in response to'/'no race condition' lines. WebFetch of Bloom Security's own post (https://bloom.security/blog/slugfest-millions-of-ai-agents-download-exposed-npm-packages, NOT cited, NOT allowlisted, not snapshotted; summarized by a fetch tool, used only as corroboration) reported Oct 13, 2026 publication, 1,500+ packages and 10+ million downloads, report to npm June 6, and a fix shipped October 2, 2026, consistent with the article. Bloom's disclosure timeline (triage June 9, last response July 8) was correctly not used.
Factual Accuracy: All figures, dates, names and quotes trace to the cited snapshots. Causal framing: the GitHub changelog entry itself does NOT mention SlugFest, Bloom Security or any research; it gives only the ownership-change risk as rationale. The link between the research and the policy is made by The Hacker News ('The development comes in response to findings from Bloom Security') and is independently corroborated by Bloom's own post (fix shipped October 2). So the article's 'GitHub responded by expiring...' is sourced, not the writer's inference, and the Oct 2 (policy) / June 6 (report) / Oct 13 (coverage) ordering is internally consistent. The Overview sentence does not explicitly attribute the causal link to The Hacker News rather than GitHub, but the article's own 'What We Don't Know' section states the changelog does not mention the research, which discloses the distinction; recorded as a recommendation, not a correction. The 48-hour description matches the previously published Herald article (2026-10/16-npm-trusted-publishing-...): 48 hours after creation, validated after first successful publish, fresh window on identity change, issue_comment rejection. The prior article's OIDC-extension-to-package-creation imprecision is NOT repeated here. Internal link /article/2026-10/16-npm-trusted-publishing-configurations-now-expire-after-48-hours-unless-validated-and-issue_comment-tokens-are-rejected uses the correct singular form and the file exists. Orphan-link diff: body URLs are the two sources plus that internal link; no orphans, no unused sources. Word count 901. Title 149 chars. Minor: the article says 'a change it announced in a changelog entry dated October 2' while the changelog is labelled Retired; immaterial. The Hacker News's 'thousands of packages' phrasing in its lead differs from the 1,500+ figure; the article correctly uses the specific figure.
Overall Assessment: Accurate, well-attributed News piece. Every figure, date and quote verified verbatim; the research-to-policy link is sourced to The Hacker News and corroborated by Bloom's own post, and the article discloses that the changelog is silent on the research. No corrections required.