Noroboto: Lying Fonts and Mitigation in Rust

(tritium.legal)

30 points | by piker 2 days ago

8 comments

  • fourgreen 7 minutes ago
  • phuff 46 minutes ago
    I think that this is an attack on the understanding of the LLM _potentially_ but it doesn't seem like it's likely to standup to legal scrutiny?

    Seems like this is pretty clearly a case of fraudulent misrepresentation (https://www.law.cornell.edu/wex/fraudulent_misrepresentation) which kinda nullifies the contract, if I understand correctly:

      Fraudulent misrepresentation is a tort claim, typically arising in the field of contract law, that occurs when a defendant makes a intentional or reckless misrepresentation of fact or opinion with the intention to coerce a party into action or inaction on the basis of that misrepresentation.
      To determine whether fraudulent misrepresentation occurred, the court will look for six factors:
        A representation was made
        The representation was false 
        That when made, the defendant knew that the representation was false or that the defendant made the statement recklessly without knowledge of its truth
        That the fraudulent misrepresentation was made with the intention that the plaintiff rely on it
        That the plaintiff did rely on the fraudulent misrepresentation
        That the plaintiff suffered harm as a result of the fraudulent misrepresentation
      Like most claims under contract law, the standard remedy for fraudulent misrepresentation is damages.
    • Aurornis 16 minutes ago
      The LLM part is confusing people.

      You can remove the LLM from the story and see how the trick would be a legal problem even with only humans involved: If you put an extra clause in a contract in white font that says “Oh and also if you agree to this you owe me $1,000” because you want to selectively hide it from reviewers but benefit from the text, no court is going to look kindly on you.

      • piker 13 minutes ago
        That’s not really a good analogy. (For blind people maybe. That is addressed in the legal accompanying post.) Here, only automation systems are actually vulnerable. The text on the screen is the same as print which is what the party signs.
    • piker 44 minutes ago
      That would be an open question in every jurisdiction. There wasn't really a representation here, but it might be something more like the doctrine of "mistake". It's also not clear "your honor I never read the contract but my LLM told me it was okay to sign" is a great argument either. Doubly-true for your $1,500/hour law firm duped by something like this.

      [Edit: by "nullify" you probably mean "void" or "voidable" which are remedies in equity, and the "never read it" argument carries even more burden there. As the citation notes the traditional remedy for contract issues is damages (i.e., cash payment).]

  • PufPufPuf 1 hour ago
    Wouldn't ligatures be a more effective attack vector for the "Maryland -> Delaware" case? That's all that ligatures do -- render a specific sequence of characters as something else.
    • piker 1 hour ago
      We're definitely not TrueType experts and took the relatively "straightforward" approach of generating a small custom font for each mapping. If it's possible to render "Maryland" with ligatures while mapping the same string to "Delaware" in Unicode, then that's just another example of the vector. Really interesting stuff, and we'll be checking it out!
    • stavros 1 hour ago
      Came here to say this, I saw the initial video and thought they used ligatures, and then I was surprised the actual post was much more complicated.
  • sheept 29 minutes ago
    Wouldn't it also work just to render the visible text as an image/path, then put invisible text objects over it?

    I've heard suggestions like having white/invisible text in resumes for tricking applicant tracking systems,[0] but it's apparently mitigated by showing recruiters the plain text version of the resume.

    [0] example: https://news.ycombinator.com/item?id=36857909

  • xiaod 30 minutes ago
    The compile-time vs runtime safety tradeoff is worth calling out. For infrastructure tooling where correctness matters more than iteration speed, the upfront cost pays dividends in reduced production incidents.
  • echoangle 2 hours ago
    At that point you can just paste a screenshot of your doc into word and celebrate.

    Also, the mitigation can probably be fooled with ligatures since they are only verifying the letters alone as far as I skimmed.

    I don’t even understand the threat model. Is my opponent in a court case going to use this on the PDF they give the court? Surely the judge will be pretty annoyed since you can’t even ctrl+f in the files then.

    • piker 2 hours ago
      That's true for the full obfuscation, but not for the replacement. For replacement there's really nothing like it. We just shared the full obfuscation as just a PoC.

      [Edit: The point here is not to prove some massive "gotcha", but rather demonstrate that there are a whole class of vulnerabilities that these pipelines are subject to. There will be follow-up posts that pack much more punch.]

      • echoangle 2 hours ago
        Assuming you’re the author since you also posted it: I just stealth-edited my comment, could you maybe talk about the threat model a bit more? I am not a lawyer so I don’t really see when I would want to do this.

        Also, I hope the „lame exploit“ I just edited out was not too offensive, it’s always great when people try to find attacks to make systems more safe.

        • piker 2 hours ago
          Absolutely, and we definitely agree this particular attack is "lame" in the sense of not allowing CVE, etc.

          But, we're working on a lot of these (as we encounter them in developing Tritium), and the point really is just to demonstrate that LLMs can be blind to ineffective implementations of the specs and other tricks.

          As mentioned in the accompanying LegalQuants post, we see a lot of these available in the pipelines of applications like Claude for Legal, Harvey, Legora and others.

          The most nefarious case here requires crafting a number of custom fonts to do character-swapping. It's less discoverable but may be sanctionable to your point.

          But bear in mind this particular "attack" was vibe coded in a day or two and most of the frontier models fail to pick up on it. As "AI native" firms come on line, and aim to be increasingly end-to-end automated, these will become real legal issues.

          And there will be a lot of them available.

          • minimaltom 1 hour ago
            It seems like the main attack scenario for this + legal AI would be during discovery: if opposing counsel gave you a poisoned PDF, and you threw it into one of these products to help you sift through it and got bad answers.

            However, wouldnt this be a rather risky move? Courts authorized the discovery, so I imagine the judge might loose their marbles and throw the hammer at them if this came to light.

            • piker 1 hour ago
              Yes, this particular vector is probably better in contracting than discovery. There is a duty of candor to the court and court rules that might come into play. In the case of contracting the attacker would be exposed to the jurisdiction's law of contracts. That might call it a "misrepresentation" or fraudulent thus making the contract void or voidable, but it's not clear "your honor I never read the contract but my LLM told me it was okay to sign" is a great argument either.
  • mproud 2 hours ago
    Someone could also just make a font file that swaps all of the characters around. So like an A looks like a Z, and a Z looks like an A.
    • piker 2 hours ago
      Covered in the post! It's the more aggressive approach for sure.