Commit ed0828d
authored
fix/batches: prevent executor environment leakage to steps (#1374)
## Problem
Batch steps can request environment variables by name. The executor passed its full process environment into this resolver, so a step could request reserved `SRC_EXECUTOR_*` values. These values include executor control credentials that must not be available inside an ordinary batch step.
This fixes [VULN-141](https://linear.app/sourcegraph/issue/VULN-141/i-can-use-a-reserved-executor-bearer-from-a-normal-v2-batch-step-to).
## Solution
Filter the reserved `SRC_EXECUTOR_*` namespace from the outer environment before resolving step variables. The filter is applied at the step execution boundary, so it covers every caller and also protects future variables in the reserved namespace. Normal environment variables and explicit step values continue to work.
## Verification Evidence
- Added a regression test showing that normal outer variables still resolve.
- Added coverage showing that current and future `SRC_EXECUTOR_*` outer variables resolve to empty values.
- `go test ./internal/batches/...`
- `go test ./cmd/src`1 parent 4d07a31 commit ed0828d
2 files changed
Lines changed: 46 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
316 | 316 | | |
317 | 317 | | |
318 | 318 | | |
319 | | - | |
320 | | - | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
321 | 322 | | |
322 | 323 | | |
323 | 324 | | |
| |||
464 | 465 | | |
465 | 466 | | |
466 | 467 | | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
467 | 479 | | |
468 | 480 | | |
469 | 481 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
| 14 | + | |
13 | 15 | | |
14 | 16 | | |
15 | 17 | | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
16 | 48 | | |
17 | 49 | | |
18 | 50 | | |
| |||
0 commit comments