Protocol Buffers CodeGeneratorRequest source_file_descriptors materialization DoS PoC

This repository contains a benign security research PoC for a .pb artifact that drives repeated-message materialization during plugin_pb2.CodeGeneratorRequest.ParseFromString(...).

Files:

  • control_one_proto_file.pb
  • malicious_proto_file_5000000.pb
  • reproduce.py

Observed behavior:

  • control artifact:
    • parses successfully with one source_file_descriptors entry
  • malicious artifact:
    • parses successfully with 5,000,000 source_file_descriptors entries
    • materially increases peak RSS during normal parse

Tested runtime:

python3 -m pip install protobuf==7.35.1

Public reproduction:

curl -L -O https://huggingface.co/hacnho/protobuf-codegeneratorrequest-source-file-descriptors-dos-poc/resolve/main/control_one_source_file_descriptor.pb
curl -L -O https://huggingface.co/hacnho/protobuf-codegeneratorrequest-source-file-descriptors-dos-poc/resolve/main/malicious_source_file_descriptors_5000000.pb
curl -L -O https://huggingface.co/hacnho/protobuf-codegeneratorrequest-source-file-descriptors-dos-poc/resolve/main/reproduce.py
python3 reproduce.py --control control_one_source_file_descriptor.pb --malicious malicious_source_file_descriptors_5000000.pb

Public files:

  • https://huggingface.co/hacnho/protobuf-codegeneratorrequest-source-file-descriptors-dos-poc/resolve/main/control_one_source_file_descriptor.pb
  • https://huggingface.co/hacnho/protobuf-codegeneratorrequest-source-file-descriptors-dos-poc/resolve/main/malicious_source_file_descriptors_5000000.pb
  • https://huggingface.co/hacnho/protobuf-codegeneratorrequest-source-file-descriptors-dos-poc/resolve/main/reproduce.py
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support