github / github/gh-aw

[sighthound] Security findings in github/gh-aw

Open
#61,038 0 comments 0 reactions 0 assignees View on GitHub
cookie security sighthound
Dominant language
Go
Stars
5.1k
Forks
541
Avg merge
5h 48m
Merged PRs (30d)
773

Description

Top 5 highest-severity findings from Sighthound actionable results:

- `actions/setup/js/update_release.test.cjs` — **Critical** (CWE-94, Code Injection) at line 195: tainted `params` reaches `eval`. **Remediation:** eliminate `eval`; use explicit parsing/dispatch logic (e.g., strict JSON parsing and allowlisted operations) and reject unexpected input.
- `actions/setup/js/update_release.test.cjs` — **Critical** (CWE-94, Code Injection) at line 222: tainted `params` reaches `eval`. **Remediation:** same fix pattern—remove dynamic code execution and enforce strict input validation with safe non-eval execution paths.
- `pkg/workflow/config_helpers.go` — **Medium** (CWE-502, Unsafe Deserialization) at line 198: `yaml.Unmarshal(yamlBytes, target)`. **Remediation:** unmarshal into strict typed structs only, disallow unknown fields, and validate decoded content before use.
- `pkg/workflow/known_action_credentials.go` — **Medium** (CWE-502, Unsafe Deserialization) at line 186: `yaml.Unmarshal([]byte(stepsYAML), &steps)`. **Remediation:** use concrete schemas for workflow steps and apply structural validation/allowlists post-unmarshal.
- `pkg/workflow/known_action_credentials.go` — **Medium** (CWE-502, Unsafe Deserialization) at line 176: `yaml.Unmarshal([]byte(stepsYAML), &wrapped)`. **Remediation:** decode into minimal strongly typed wrappers, reject unexpected keys/types, and validate all nested fields.

> [!WARNING]
>
> Firewall blocked 1 domain
>
> The following domain was blocked by the firewall during workflow execution:
>
> - `ab.chatgpt.com`
>
> To allow these domains, add them to the `network.allowed` list in your workflow frontmatter:
>
> ```yaml
> network:
> allowed:
> - defaults
> - "ab.chatgpt.com"
> ```
>
> See [Network Configuration](https://github.github.com/gh-aw/reference/network/) for more information.
>
>

> Generated by [🛡️ Sighthound Security Scan](https://github.com/github/gh-aw/actions/runs/34932403389) · codex · gpt53codex · 6.16 AIC · ⌖ 2.66 AIC · ⊞ 18.6K · [◷](https://github.com/search?q=repo%3Agithub%2Fgh-aw+is%3Aissue+%22gh-aw-workflow-call-id%3A+github%2Fgh-aw%2Fsighthound-security-scan%22&type=issues)

Contributor guide

Open the contributing guide

Research direction

Review the two eval sites in actions/setup/js/update_release.test.cjs at lines 195 and 222, then inspect the yaml.Unmarshal calls in pkg/workflow/config_helpers.go and pkg/workflow/known_action_credentials.go. Done means dynamic evaluation is removed and the YAML inputs use typed schemas with unknown-key rejection and validation, as described by the findings.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, go, javascript
Domain
backend, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.