Clarify and harden cleanroom rules around reference executable instrumentation
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- docker
- Domain
- documentation, infrastructure, security
Research direction
Start with the current ProgramBench and mini-SWE-agent instructions and the recommended Docker setup described in the issue. Compare the explicitly allowed black-box probing with environment, loader, process-state, and filesystem instrumentation, then determine whether the documented cleanroom boundary is sufficient or an isolated structured oracle harness is needed. Done means the rules and, if pursued, the harness behavior are explicit and reproducible.
Written by the indexing model from the issue text.
Description
Hi ProgramBench team, thanks for releasing the benchmark.
I wanted to ask for clarification about the intended cleanroom boundary for the provided reference executable during inference.
The current ProgramBench / mini-SWE-agent instructions are very clear that agents should infer behavior only by running the provided executable and reading bundled documentation. The default ProgramBench config also disallows internet access (--network none), runs as a non-root user, and drops SYS_PTRACE. The prompt explicitly forbids source lookup, wrapping/reusing the original binary, decompilation/disassembly, and strace/ltrace or similar instrumentation.
My question is whether the following should also be explicitly considered cleanroom violations, which I have observed during inference of my tested model:
- executing the reference with a polluted environment, e.g.
PATH=/tmp:$PATH ./executable ...to make it call agent-written fake dependencies - using loader instrumentation such as
LD_PRELOAD,LD_LIBRARY_PATH, or dynamic linker tricks against./executable - inspecting runtime process state via
/proc/$pid/{maps,fd,environ,cmdline}or core/memory dumps - changing cwd/tmp/config files specifically to observe implementation-level effects rather than normal public CLI behavior
These are different from normal allowed black-box probing, such as running ./executable --help, passing inputs, and observing stdout/stderr/exit codes/filesystem side effects.
The current recommended Docker setup appears to run the agent and the reference executable in the same container. This blocks important classes of abuse (--network none, non-root user, SYS_PTRACE dropped), but it does not fully isolate the true reference executable from agent-controlled environment variables, writable /tmp/workspace state, PATH/cwd pollution, or same-container process observation.
Would you consider either:
- documenting the above behaviors explicitly as disallowed instrumentation/wrapping of the oracle, and/or
- adding an optional hardened inference harness where the true reference executable runs behind a separate sanitized oracle process/container, with the agent only able to issue structured black-box execution requests?
This is not intended as a security vulnerability report. It is a benchmark semantics / reproducibility question: the goal is to ensure scores measure behavioral inference from the public interface, not implementation-level oracle instrumentation.
- Dominant language
- Python
- Stars
- 928
- Forks
- 67
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from facebookresearch/ProgramBench
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
-
Difficulty 4/5 3-5 days Newbie friendliness 55/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
Difficulty 4/5 3-5 days Newbie friendliness 58/100
All issues in facebookresearch/ProgramBench
Similar issues
-
essnmx good first issue
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
[Feature] 奇物选择添加优先级 Open
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
syfoud/Simulated_Scepter#174 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Giskard-AI/giskard-oss#2840 · 1 comment ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success Openarea: repo bug perceived difficulty: 2
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
yeti-platform/yeti#1380 ·