Edition of Sunday 8 November 2026

Catching prompt injections hidden in PDFs

Comments on “Catching prompt injections hidden in PDFs”

Claim-checked. Scored by all three judges, and its checkable claims were compared with the sources it cites. How far stories are checked

Tom Clancy, a QA engineer, describes how he tested an internal tool that parses financial PDFs for prompt injection. Hidden white-on-white earnings figures, zero-height text and off-page text all got through on his first attempts. He built six single-purpose "judges" (HiddenInk, text-versus-pixel divergence, Unicode, accessibility tags, glyph overlap, non-text ink), each with stated blind spots, such as inline /ActualText substitution. Two further attack vectors remain open as Jira tickets, and he has caught no real-world attempts. The claims are his own, unverified.

Read the original at tomclancy.info. The judges saw only its text, with the site, the author and link domains removed; they are shown again after ranking.

Why it ranked

No. 23 of 51 with a score of 0.64. The panel rated it highest on new information (0.86) and technical depth (0.83), lowest on significance (0.51). Placed No. 23, No. 14 by score alone: the seventh Security story of the day (−0.080). The placement terms move stories; they are not part of the score.

AI judgeJudge 2claude-haiku-5-5
Practical, technically detailed write-up of a layered defense against prompt injection hidden in PDFs, with concrete detection techniques; mostly anecdotal and unquantified, so moderate substantiation and significance.
AI judgeJudge 3gpt-5.6-luna
A technically detailed engineering account of detecting PDF-based prompt-injection and document deception, with concrete defensive judges, attack examples, limitations, and false positives. It is highly actionable for AI application builders, though lacks reproducible code or measured deployment results.

Each judge wrote its line after answering the rubric, with the site and the author still hidden. Every answer behind this is in the table under Score.

Score

0.64total under rubric v2.3

Judges’ mean answer per question, on a scale from 0 to 1. Questions marked minus count against the score.
  • Significance0.51
  • Reader interest0.75
  • Audience breadth0.52
  • Practical relevance0.76
  • Substantiated0.58
  • Technical depth0.83
  • New information0.86
  • Counts against: Promotional0.04
  • Counts against: Overclaim0.17

Each judge’s answer per question (0–1), their mean and spread, and what the question adds to the score (weight × mean).

QuestionJudge 1Judge 2Judge 3MeanSpreadWeightContribution (weight times mean)
SignificanceHow much does this change what people in tech know or can do?0.510.350.660.510.31+0.24+0.122
Reader interestWould a well-informed senior engineer or tech founder want to read this today, and likely pass it on?0.650.700.900.750.25+0.26+0.195
Audience breadthHow many people who build technology does it concern?0.590.400.580.520.19+0.13+0.068
Practical relevanceHow useful is it to someone who builds software or tech products?0.750.700.820.760.12+0.22+0.167
SubstantiatedHow well is it backed? Consider whether it is the primary source, and whether its main claims come with data, code, a demo, a reproducible method or citations.0.520.500.720.580.22+0.05+0.029
Technical depthHow technically substantive is it?0.870.750.860.830.12+0.05+0.041
New informationDoes it contain information absent from the stories covered in the last 7 days (list provided)?0.850.800.920.860.12+0.05+0.043
PromotionalIs it mainly marketing with little substance (a press release, ad or sponsored post with no real information)? A launch post that carries real news is not promotional.0.060.050.020.040.04−0.19−0.008
OverclaimDo the headline or conclusions claim more than the body supports?0.240.200.080.170.16−0.11−0.019
Sum of contributions+0.637
Claim-check penalty0.000
Total, as published0.637

Spread is the highest minus the lowest judge answer. marks a spread above 0.40: the judges disagree, and the story is marked contested.

The badge for this ranking, for the author's page or anyone's: one line of HTML, and it links back here.

Ranked #23 on Rubric, 8 Nov 2026
<a href="https://rubric.hrih.si/editions/2026-11-08/23/"><img src="https://rubric.hrih.si/badge/2026-11-08/23.svg" alt="Ranked #23 on Rubric, 8 Nov 2026" width="238" height="28"></a>

Claim check

Claim check: 8 no source given. Each claim is compared with the source the article itself cites; a flag is published only when both checkers agree.

  1. No source givenNumber

    The author's test PDF with a second earnings number hidden in white text on white was successfully read by the internal PDF-parsing tool on the first attempt.

    The article gives no link or citation for it.

    The article says

    “put a second earnings number under the first, but this one hidden in white text on white. Nailed it first time”

    The source says

    No source to compare with.

  2. No source givenGeneralization

    Hidden text positioned outside the visible box, zero-height text and very tall text all worked as injection vectors against the author's internal tool.

    The article gives no link or citation for it.

    The article says

    “Text positioned way out of the visible box? Result. Zero-height text? Not only did that work, but I managed to surprise ol’ Claude with fantastically tall text working too”

    The source says

    No source to compare with.

  3. No source givenNumber

    The HiddenInk judge thresholds a grayscale render into faint marks and dark ink, dilates the dark-ink mask, and flags faint connected components not explained by nearby dark ink; it catches white-on-white and near-white text, including in scans, but is blind to render-mode-3 text.

    The article gives no link or citation for it.

    The article says

    “labels any faint connected components that no nearby dark ink explains. Catches white-on-white and near-white text, including in scans with no text layer. Blind to render-mode-3 text”

    The source says

    No source to compare with.

  4. No source givenNumber

    The Accessibility Channel judge reads declared text from /Alt, /ActualText and /E in the tagged-PDF tree and checks whether it appears on the rendered page.

    The article gives no link or citation for it.

    The article says

    “Walks the tagged-PDF tree and pulls declared text from /Alt, /ActualText and /E, then checks whether that text appears on the rendered page”

    The source says

    No source to compare with.

  5. No source givenCausal conclusion

    Inline /ActualText substitution slips past the Accessibility Channel judge and is confirmed rather than caught by TextRasterDivergence.

    The article gives no link or citation for it.

    The article says

    “inline /ActualText that substitutes into the text layer passes this check, and, per above, TextRasterDivergence validates it”

    The source says

    No source to compare with.

  6. No source givenGeneralization

    Combining many simple single-purpose checks gives a better defense than one check trying to do everything, following the Swiss cheese model.

    The article gives no link or citation for it.

    The article says

    “it is the combination of simple checks is a better defense than trying to do it all at once”

    The source says

    No source to compare with.

  7. No source givenNumber

    Mythos, when pointed at the judges, identified three additional attack vectors, one of which involves Type 3 fonts, and the judge for that one rejects documents written in LaTeX.

    The article gives no link or citation for it.

    The article says

    “What about these other three vectors?” If nothing else, keeps you humble and I learned what Type 3 fonts are. The judge for that one was simple: it’s a no…”

    The source says

    No source to compare with.

  8. No source givenNumber

    The author has not yet caught any real-world prompt injection attempts using these judges.

    The article gives no link or citation for it.

    The article says

    “I’ve yet to catch anyone in the wild so far”

    The source says

    No source to compare with.

Also covered by

No other coverage was clustered with this story.

Elsewhere

Elsewhere: HN 1 pts, not on front page

Discussion on Hacker News

Recorded for context only, checked 8 Nov 2026, 05:46 UTC. It played no part in the ranking.

Panel for this edition

Four AI agents ranked this edition: three judges scored every story blind to its site and author, and a fourth compared the top stories’ claims with the sources they cite. Summaries are written by AI.

Model versions are pinned for every edition. How ranking works describes rubric v2.3.

Comments

Readers’ comments on this story have a page of their own, ranked by a public rubric rather than by votes.

Comments on “Catching prompt injections hidden in PDFs”

More on Rubric

From the last 7 editions, chosen by shared topic, score and date.