-
Notifications
You must be signed in to change notification settings - Fork 0
fix(security): preserve exact CI evidence while redacting provider secrets #1242
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
seonghobae
wants to merge
17
commits into
main
Choose a base branch
from
bolt-regex-optimization-9726133996050986471
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+136
−14
Open
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
71e4548
refactor: ⚡ Bolt: 대용량 로그 스캔 최적화를 위한 단일 정규표현식 결합
seonghobae cc7beea
Merge branch 'main' into bolt-regex-optimization-9726133996050986471
opencode-agent[bot] b27b834
fix: 🛡️ Expand redact_sensitive_log.py regex with missing cloud keys
seonghobae 0434c12
Merge remote-tracking branch 'origin/main' into codex/pr1242-root-fix
seonghobae 9bdfcbd
fix(security): preserve exact evidence during log redaction
seonghobae 7472479
Merge remote-tracking branch 'origin/main' into test-bolt-regex-optim…
claude fa6084f
Merge branch 'main' into bolt-regex-optimization-9726133996050986471
seonghobae 224fee4
Merge branch 'main' into bolt-regex-optimization-9726133996050986471
seonghobae 91bc70b
Merge origin/main into fix/security-preserve-ci-evidence-redact-secrets
claude a26d9bf
Merge remote-tracking branch 'origin/main' into bolt-regex-optimizati…
claude 326aaad
fix(security): scrub provider tokens inside structured JSON values
claude 1e2d132
Merge branch 'main' into bolt-regex-optimization-9726133996050986471
opencode-agent[bot] 5c8340a
Merge branch 'main' into bolt-regex-optimization-9726133996050986471
opencode-agent[bot] b211b28
Merge branch 'main' into bolt-regex-optimization-9726133996050986471
opencode-agent[bot] 7c286fb
Merge branch 'main' into bolt-regex-optimization-9726133996050986471
opencode-agent[bot] c604705
Merge branch 'main' into bolt-regex-optimization-9726133996050986471
opencode-agent[bot] 3f2a166
Merge branch 'main' into bolt-regex-optimization-9726133996050986471
opencode-agent[bot] File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| # CI log evidence redaction | ||
|
|
||
| ## Incident and boundary | ||
|
|
||
| PR #1242 briefly classified every standalone 40- or 88-character base64-like | ||
| value as a credential. A 40-character lowercase hexadecimal Git commit identity | ||
| therefore became `[REDACTED]`, destroying the exact-head evidence that protected | ||
| review and merge gates need. Length alone cannot distinguish an opaque secret | ||
| from a commit SHA or other legitimate evidence. | ||
|
|
||
| The redactor now uses the smallest reliable boundary: | ||
|
|
||
| - provider-specific, documented prefixes such as Stripe `sk_test_` and | ||
| `sk_live_` may be recognized in unstructured text; | ||
| - opaque AWS and Azure values are redacted only when a sensitive assignment or | ||
| JSON key supplies context, including `AWS_SECRET_ACCESS_KEY` and | ||
| `AZURE_STORAGE_KEY`; | ||
| - unlabeled fixed-length strings remain visible so exact commit and artifact | ||
| identities stay auditable. | ||
|
|
||
| This follows OWASP's requirement to keep secrets out of logs while retaining | ||
| the security events and audit fidelity needed for investigation. It also uses | ||
| the vendors' documented key names or prefixes instead of an inferred value | ||
| shape. | ||
|
|
||
| ## Verification contract | ||
|
|
||
| `tests/test_opencode_security_boundaries.py` uses synthetic values to prove all | ||
| four outcomes: Stripe secret prefixes are removed, labeled AWS and Azure values | ||
| are removed, and unlabeled 40- and 88-character evidence is preserved. No real | ||
| credential or provider account data is stored in the repository. | ||
|
|
||
| ## References | ||
|
|
||
| Amazon Web Services. (n.d.). *Configuring environment variables for the AWS | ||
| CLI*. Retrieved August 23, 2026, from | ||
| https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html | ||
|
|
||
| Microsoft. (n.d.). *Authorize access to blob data with Azure CLI*. Retrieved | ||
| August 23, 2026, from | ||
| https://learn.microsoft.com/en-us/azure/storage/blobs/authorize-data-operations-cli | ||
|
|
||
| OWASP Foundation. (n.d.). *Logging cheat sheet*. Retrieved August 23, 2026, | ||
| from https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html | ||
|
|
||
| OWASP Foundation. (n.d.). *Secrets management cheat sheet*. Retrieved August | ||
| 23, 2026, from | ||
| https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html | ||
|
|
||
| Stripe. (n.d.). *API keys*. Retrieved August 23, 2026, from | ||
| https://docs.stripe.com/keys |
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
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.