[LAUNCH-E M5+R6, Medium] Separate environment allow-lists per execution class and warn on credential-looking allow-list names
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
Research direction
Start with the allow-list configuration and launch call sites in src/autoforge/config.py and src/autoforge/engine.py, then trace filtering in src/autoforge/child_env.py and src/autoforge/sdk_policy.py. Read the security audit notes in docs/security.md and run the relevant tests to map each launch class. Done means separate backward-compatible allow-lists, warnings for credential-looking names, updated security/configuration/usage docs, and passing make check.
Written by the indexing model from the issue text.
Description
Artifact: follow-up issue for audit findings M5 (Medium) and R6 (proposed as an accepted residual, reclassified to Medium by the maintainer on #257) of the LAUNCH-E security audit (#257, PR #279). This issue body is the authoritative copy. Audited commit: 388ecb3b9d6376f8914054cc06ea5e5caab164da (main); line numbers below are at that commit.
Parent: #255 · Audit: #257 · Audit PR: #279 · Severity: Medium (both)
Summary
- M5:
execution.env_allowlistandenv_allowlist_extraapply to every launch class alike. A name added for a validation command reaches every agent, and one added for an agent (Pi's API key, for example) reaches the candidate's code run by validation and pre-merge commands. - R6: the allow-list refuses only the names
ghand git read a credential from (GH_TOKEN,GITHUB_*,GH_*, ...). A GitHub token the operator forwards under a name of their own (GITHUB_PAT,MY_GITHUB_PAT, or through a broad prefix such asH*) is accepted and reaches every launch; the SDK filter keeps such a name too. An enforced sandbox does not close this, so it is not an accepted residual under #257's rubric; it is an easy-to-misconfigure boundary.
Evidence (at 388ecb3)
src/autoforge/config.py:316-317,1296-1306;src/autoforge/engine.py:5337,5836,9586(one allow-list at each call site).src/autoforge/child_env.py:143-172,273-295;src/autoforge/sdk_policy.py:207-209.- Disclosed in
docs/security.md("Other limits": one allow-list for every launch); the overstated "no credential variable can be listed" wording is corrected by PR #279.
Scope
- Separate allow-lists per execution class (agent launches; repository commands: LOCAL validation, REMOTE validator, pre-merge), with backward-compatible defaults and strict key validation.
- Warn (in
doctorand at config load) on allow-listed names or prefixes that look like credentials (*TOKEN*,*PAT*,*SECRET*,*PASSWORD*,*GITHUB*), and refuse prefixes broad enough to cover a refused credential name's neighbours if that can be done without false positives; document the rule. - Update
docs/configuration.md,docs/security.mdanddocs/usage.md.
Acceptance criteria
- A variable allow-listed only for repository commands does not reach an agent, and vice versa; tests cover each launch class.
- A credential-looking allow-list entry produces a visible warning (or refusal), tested with dummy names.
-
make checkpasses.
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- Avg merge
- 5h 57m
- Merged PRs (30d)
- 71
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
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 iceboundrock/AutoForge
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
iceboundrock/AutoForge#304 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
iceboundrock/AutoForge#333 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
iceboundrock/AutoForge#332 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 1/100
iceboundrock/AutoForge#331 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 45/100
iceboundrock/AutoForge#329 · 1 comment ·
Maintainers usually reply within 1 day
All issues in iceboundrock/AutoForge
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
NVIDIA/flare-local-inference#90 ·
Maintainers usually reply within 1 day
-
area/streaming comp/gateway P2 platform/telegram type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
NousResearch/hermes-agent#144897 ·
Maintainers usually reply within 1 day
-
request-theme
Difficulty 1/5 Under an hour Newbie friendliness 66/100
LizardByte/ThemerrDB#9575 ·
Maintainers usually reply within 1 day
-
author-page correction
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
acl-org/acl-anthology#10599 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
zilliztech/memsearch#818 ·
Maintainers usually reply within 1 day