Skip to content

Experimental implementation for paper for Lost in Translation: Enabling Confused Deputy Attacks on EDA Software with TransFuzz (USENIX Sec'25)

License

Notifications You must be signed in to change notification settings

comsec-group/mirtl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Experimental implementation for paper for Lost in Translation: Enabling Confused Deputy Attacks on EDA Software with TransFuzz (USENIX Sec'25)

Welcome to an experimental implementation of TransFuzz! Disclaimer: there might be imperfections, issues or incompletenesses. Please feel free to contribute!

For more information about TransFuzz and the security implications of the findings, visit https://comsec.ethz.ch/mirtl

We provide a Docker image that you can collect running the command:

docker pull docker.io/ethcomsec/mirtl:mirtl-artifacts

To build the docker image yourself:

cd docker
mkdir mirtl-yosys

Download the mirtl-yosys archive from here https://berkeley.box.com/s/lv2jg9fzvwdlimo43i9naks4c1d5u3oh and put it into the ./docker/mirtl-yosys folder just created.

Then run the following command:

bash rebuild_push.sh

To differentially fuzz simulators run the command below after selecting the desired FirstSimulator and SecondSimulator in the same Python script.

cd fuzzer
python3 do_genonebyone.py 100 100 70

This execution will log many lines looking like

Match             0xc0 wl          1197512
Match           0x2b09 wl          1095014
Match             0x9c wl          1015013
Match            0x204 wl          1042512
Match             0x55 wl          1180015
Match            0x312 wl          1210015
Match             0x7d wl          1012515
Match             0xce wl          1085014
Match             0x69 wl          1122514
Match           0x1745 wl          1207515
Match          0x2edb3 wl          1062515
Match             0x66 wl          1097515
Match         0x31e0ac wl          1125015
Match          0x29493 wl          1117515
Match          0x1a49b wl          1150015
Match            0x1ca wl          1140015
Match              0x8 wl          1167515
Match           0x2a62 wl          1165013
Match             0x96 wl          1107514
Match             0xe2 wl          1132515
Match              0x0 wl          1127512
Match             0x98 wl          1212514
Match             0xce wl          1182515
Match             0x30 wl          1155013
Match              0x0 wl          1052515
Match         0x107eba wl          1000014

Each row represents one hardware circuit. The hexadecimal number represents the cumulative signature. The decimal number represents the workload identifier. Any mismatch between the tools would report a mismatch instead of a "Match" line.

To fuzz Yosys, execute:

cd fuzzer
python3 do_genonebyone_fuzzyosys.py 100 500 70

About

Experimental implementation for paper for Lost in Translation: Enabling Confused Deputy Attacks on EDA Software with TransFuzz (USENIX Sec'25)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published