Fix(vulnerability_analytics): Resolve angr execution failures and fix Docker/Poetry setup - #8
Open
tdrdnt wants to merge 3 commits into
Open
Fix(vulnerability_analytics): Resolve angr execution failures and fix Docker/Poetry setup#8tdrdnt wants to merge 3 commits into
tdrdnt wants to merge 3 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
This PR aims to restore reliable execution of the vulnerability_analytics module by stabilizing its Docker runtime (including an angr-compatible base image and corrected container entrypoint behavior) and tightening dependency/Poetry setup, alongside README setup instruction updates.
Changes:
- Adjusts the runtime container base image and Docker entrypoint generation for analyzing binaries (angr/rex flow).
- Updates the main development/runtime Docker image to Python 3.10 and installs Poetry via
pip. - Reworks
pyproject.tomldependency constraints and addspoetry.tomlto control virtualenv creation.
Reviewed changes
Copilot reviewed 6 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| vulnerability_analytics/rex_api/DockerBuilder.py | Generates an absolute binary path in the generated image ENTRYPOINT. |
| vulnerability_analytics/res/Dockerfile | Pins the analysis-image base to Ubuntu 20.04 for improved compatibility. |
| docker/Dockerfile | Moves to python:3.10, installs Poetry via pip, and copies local packages into the image. |
| README.md | Updates Docker build/run instructions and switches to poetry run ... invocation examples. |
| pyproject.toml | Replaces caret constraints with bounded ranges; adds archr and other constraints. |
| poetry.toml | Enables in-project virtualenv creation. |
馃挕 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
tdrdnt
force-pushed
the
tudor-fix-vuln-analytics
branch
from
September 2, 2026 21:13
6c546f5 to
b2a262a
Compare
Update DockerBuilder to generate an absolute path for the target binary in the ENTRYPOINT instruction. This ensures angr and archr resolve the executable properly within the container and prevents 'simgr is empty' errors. Downgrade the base image in res/Dockerfile to ubuntu:20.04 to guarantee glibc and runtime compatibility for older 32-bit ELF binaries. Signed-off-by: Tudor Danet <tudor.danet.upb@gmail.com>
Update the module Dockerfile to install Poetry via pip to ensure proper PATH resolution and configure environment flags to treat incompatible pointer types as warnings during C extension compilation. Configure Poetry to create in-project virtual environments in poetry.toml, pin cffi and pycparser constraints, and update README.md with the new build and execution instructions from the project root. Signed-off-by: Tudor Danet <tudor.danet.upb@gmail.com>
Add 32-bit ELF test binaries and their corresponding C source files in the test_binary directory. These include a buffer overflow test case triggered via stdin and a NULL pointer dereference test case triggered via command-line arguments to validate crash analysis in the test suite. Signed-off-by: Tudor Danet <tudor.danet.upb@gmail.com>
tdrdnt
force-pushed
the
tudor-fix-vuln-analytics
branch
from
September 5, 2026 10:26
434c509 to
8b6a193
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose of the PR
This PR fixes the
vulnerability_analyticsmodule, which was failing to run due to issues related to the Docker environment, package versions, and incompatibilities with theangrloader. It also updates theREADME.mdwith the correct setup and execution instructions.Main Changes:
1. angr/Docker Execution Fixes:
ubuntu:latesttoubuntu:20.04to prevent glibc compatibility issues with theangrloader (which caused thesimgr is emptyerror).DockerBuilder.pyto generate an absolute path for the binary in theENTRYPOINTinstruction.2. Docker and Setup Fixes:
python:3.10, fulfilling the requirements specified inpyproject.toml.pip install poetryto avoid environment pathing issues.README.mdto specify that thedocker buildcommand must be executed from the project root. This ensures that local packages (commons,zeratool_lib) are properly included in the Docker context.3. Dependency Management:
^) constraints inpyproject.tomland replaced them with specific version constraints to prevent unexpected breaking changes during future installations (e.g., Python version is strictly bounded to>=3.10, <3.11).poetry.lockfile.How to Test:
docker buildcommand from the project root according to the updated instructions in the README.poetry run vulnerability_analytics get --binary-path=./test_binary/source.bin --binary-arguments="--string,santa"