Trail of Bits fixes mermaid-to-proverif, which read ProVerif's results backwards
1 month ago
Trail of Bits fixed mermaid-to-proverif, the trailmark skill that turns a Mermaid sequence diagram of a cryptographic protocol into a ProVerif model. It read ProVerif's reachability results backwards, and its forward-secrecy test leaked the long-term keys too early. Both are fixed in trailmark 0.12.1. https://github.com/trailofbits/skills/pull/367 https://github.com/trailofbits/skills
Ask about this presentation
Chapters
0:00Trail of Bits fixes mermaid-to-proverif, which read ProVerif's results backwards
0:26ProVerif prints is false when the event can happen
0:46Every other query rests on the reachability check
1:09The forward-secrecy test now leaks the keys after the sessions
1:28The skill's own example has a replay finding
1:50What changed in the trailmark plugin, and what stayed the same
Show transcriptHide transcript
Trail of Bits has fixed mermaid-to-proverif, the skill that turns a Mermaid sequence diagram of a cryptographic protocol into a ProVerif model. It read the ProVerif reachability check backwards. So a correct model looked broken, and a broken model looked fine. If you have formally verified a protocol with this skill, those verdicts are worth a second look.
ProVerif checks whether an event can happen by trying to prove it never does. So when the event is reachable, it prints "not event, is false." The skill told the model that false meant a structural bug. Now false is the good case, and true means the event never fires.
That check is the skill's first query. If the protocol's last step can't be reached, every secrecy and authentication result after it is meaningless. With the reading flipped, a stuck model passed that check. The skill, both of its reference files and its example all carried the backwards reading, five places in total.
The forward secrecy pattern had a second problem. It handed both long-term keys to the attacker at the very start, so the attacker could impersonate either side, and secrecy failed for every authenticated protocol. Now the keys leak after the sessions finish, and on the example both secrecy queries hold.
The example the skill teaches from had a finding of its own. Its handshake has no challenge from the responder, so replaying the first message completes another responder session, and the replay check fails. The weaker authentication property holds. The example now reports that replay as a real finding.
The models the skill writes are unchanged. What changed is how it reads ProVerif's answers, and how it tests forward secrecy. A new test keeps that guidance matched to ProVerif's output, and only runs ProVerif itself where it is installed. The update ships in the trailmark plugin, which loads in Claude Code and in Codex.
Up next
2:54Anthropic’s Excel skill stops LibreOffice from rewriting your workbook
@skill-repos
4 hours ago
2:01Agent Skills’ frontend skill stops installing test runners just to check its work
@skill-repos
15 hours ago
2:23Trail of Bits’ taint-trace skill adds the source and sink models your taint analyzer is missing
@skill-repos
2 days ago
1:30Anthropic’s Word, PDF, PowerPoint and Excel skills are now Apache 2.0
@skill-repos
1 week ago
2:32Trail of Bits' cvss-scoring skill turns a bug description into a CVSS v4.0 vector
@skill-repos
1 week ago
3:02Superpowers 7.0.2 fixes skill loading on Pi, OpenCode and Copilot for Windows
@skill-repos
1 week ago
2:12Superpowers’ brainstorming skill now asks why first and stops asking filler questions
@skill-repos
1 week ago
1:37Agent Skills' code review skill now drops findings your code already rules out
@skill-repos
1 week ago
2:10Superpowers 7.0.1 keeps its five-round fix limit after Claude Code compacts
@skill-repos
3 weeks ago
2:11Trail of Bits' regression-hunt skill only reports a bug a fresh agent can reproduce
@skill-repos
3 weeks ago
2:30Superpowers’ brainstorming skill now reads your project before it asks you anything
@skill-repos
3 weeks ago
2:07Trail of Bits' gh-cli plugin stops long Claude Code sessions from breaking every Bash call
@skill-repos
1 month ago