Skip to content

Integrate typos tool into CI#6967

Closed
SolariSystems wants to merge 17 commits intoprojectdiscovery:mainfrom
SolariSystems:bounty/SBR_projectdis_nuclei_6532
Closed

Integrate typos tool into CI#6967
SolariSystems wants to merge 17 commits intoprojectdiscovery:mainfrom
SolariSystems:bounty/SBR_projectdis_nuclei_6532

Conversation

@SolariSystems
Copy link

@SolariSystems SolariSystems commented Feb 19, 2026

Superseded by PR #7011 — this PR is closed.

dependabot bot and others added 12 commits February 2, 2026 06:30
…6797)

Bumps the modules group with 8 updates:

| Package | From | To |
| --- | --- | --- |
| [github.com/projectdiscovery/fastdialer](https://github.com/projectdiscovery/fastdialer) | `0.5.3` | `0.5.4` |
| [github.com/projectdiscovery/hmap](https://github.com/projectdiscovery/hmap) | `0.0.99` | `0.0.100` |
| [github.com/projectdiscovery/interactsh](https://github.com/projectdiscovery/interactsh) | `1.2.4` | `1.3.0` |
| [github.com/projectdiscovery/retryablehttp-go](https://github.com/projectdiscovery/retryablehttp-go) | `1.3.5` | `1.3.6` |
| [github.com/projectdiscovery/dsl](https://github.com/projectdiscovery/dsl) | `0.8.12` | `0.8.13` |
| [github.com/projectdiscovery/gologger](https://github.com/projectdiscovery/gologger) | `1.1.67` | `1.1.68` |
| [github.com/projectdiscovery/wappalyzergo](https://github.com/projectdiscovery/wappalyzergo) | `0.2.65` | `0.2.66` |
| [github.com/projectdiscovery/cdncheck](https://github.com/projectdiscovery/cdncheck) | `1.2.20` | `1.2.21` |


Updates `github.com/projectdiscovery/fastdialer` from 0.5.3 to 0.5.4
- [Release notes](https://github.com/projectdiscovery/fastdialer/releases)
- [Commits](projectdiscovery/fastdialer@v0.5.3...v0.5.4)

Updates `github.com/projectdiscovery/hmap` from 0.0.99 to 0.0.100
- [Release notes](https://github.com/projectdiscovery/hmap/releases)
- [Commits](projectdiscovery/hmap@v0.0.99...v0.0.100)

Updates `github.com/projectdiscovery/interactsh` from 1.2.4 to 1.3.0
- [Release notes](https://github.com/projectdiscovery/interactsh/releases)
- [Commits](projectdiscovery/interactsh@v1.2.4...v1.3.0)

Updates `github.com/projectdiscovery/retryablehttp-go` from 1.3.5 to 1.3.6
- [Release notes](https://github.com/projectdiscovery/retryablehttp-go/releases)
- [Commits](projectdiscovery/retryablehttp-go@v1.3.5...v1.3.6)

Updates `github.com/projectdiscovery/dsl` from 0.8.12 to 0.8.13
- [Release notes](https://github.com/projectdiscovery/dsl/releases)
- [Commits](projectdiscovery/dsl@v0.8.12...v0.8.13)

Updates `github.com/projectdiscovery/gologger` from 1.1.67 to 1.1.68
- [Release notes](https://github.com/projectdiscovery/gologger/releases)
- [Commits](projectdiscovery/gologger@v1.1.67...v1.1.68)

Updates `github.com/projectdiscovery/wappalyzergo` from 0.2.65 to 0.2.66
- [Release notes](https://github.com/projectdiscovery/wappalyzergo/releases)
- [Commits](projectdiscovery/wappalyzergo@v0.2.65...v0.2.66)

Updates `github.com/projectdiscovery/cdncheck` from 1.2.20 to 1.2.21
- [Release notes](https://github.com/projectdiscovery/cdncheck/releases)
- [Commits](projectdiscovery/cdncheck@v1.2.20...v1.2.21)

---
updated-dependencies:
- dependency-name: github.com/projectdiscovery/fastdialer
  dependency-version: 0.5.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: modules
- dependency-name: github.com/projectdiscovery/hmap
  dependency-version: 0.0.100
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: modules
- dependency-name: github.com/projectdiscovery/interactsh
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: modules
- dependency-name: github.com/projectdiscovery/retryablehttp-go
  dependency-version: 1.3.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: modules
- dependency-name: github.com/projectdiscovery/dsl
  dependency-version: 0.8.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: modules
- dependency-name: github.com/projectdiscovery/gologger
  dependency-version: 1.1.68
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: modules
- dependency-name: github.com/projectdiscovery/wappalyzergo
  dependency-version: 0.2.66
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: modules
- dependency-name: github.com/projectdiscovery/cdncheck
  dependency-version: 1.2.21
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: modules
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ery#6796)

Refactor `ParseTemplateFromReader` to parse YAML
once after applying preprocessors, avoiding
redundant parsing for verification. Also add
`parseTemplateNoVerify` and
`applyTemplateVerification` helpers to separate
parsing from signature verification logic to
reduce CPU overhead during startup template
loading.

Signed-off-by: Dwi Siswanto <git@dw1.io>
Closes projectdiscovery#6734.

Signed-off-by: Dwi Siswanto <git@dw1.io>
…6853)

Bumps the modules group with 2 updates: [github.com/projectdiscovery/wappalyzergo](https://github.com/projectdiscovery/wappalyzergo) and [github.com/projectdiscovery/cdncheck](https://github.com/projectdiscovery/cdncheck).


Updates `github.com/projectdiscovery/wappalyzergo` from 0.2.66 to 0.2.67
- [Release notes](https://github.com/projectdiscovery/wappalyzergo/releases)
- [Commits](projectdiscovery/wappalyzergo@v0.2.66...v0.2.67)

Updates `github.com/projectdiscovery/cdncheck` from 1.2.21 to 1.2.22
- [Release notes](https://github.com/projectdiscovery/cdncheck/releases)
- [Commits](projectdiscovery/cdncheck@v1.2.21...v1.2.22)

---
updated-dependencies:
- dependency-name: github.com/projectdiscovery/wappalyzergo
  dependency-version: 0.2.67
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: modules
- dependency-name: github.com/projectdiscovery/cdncheck
  dependency-version: 1.2.22
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: modules
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the go_modules group with 1 update in the / directory: [github.com/go-git/go-git/v5](https://github.com/go-git/go-git).


Updates `github.com/go-git/go-git/v5` from 5.16.2 to 5.16.5
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](go-git/go-git@v5.16.2...v5.16.5)

---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
  dependency-version: 5.16.5
  dependency-type: direct:production
  dependency-group: go_modules
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…pport (projectdiscovery#6841)

* chore(deps): bump github.com/bytedance/sonic to 1.15.0 for Go 1.26 support

Update https://github.com/bytedance/sonic to https://github.com/bytedance/sonic/releases/tag/v1.15.0
For
* bytedance/sonic#898

Found in
* Homebrew/homebrew-core#258912

Upgraded by performing:

```
$ go1.26rc3 build -v ./...
github.com/bytedance/sonic/internal/rt
# github.com/bytedance/sonic/internal/rt
../../../go/pkg/mod/github.com/bytedance/sonic@v1.14.0/internal/rt/stubs.go:33:22: undefined: GoMapIterator
../../../go/pkg/mod/github.com/bytedance/sonic@v1.14.0/internal/rt/stubs.go:36:54: undefined: GoMapIterator
$ go get github.com/bytedance/sonic@latest && go mod tidy
go: added github.com/bytedance/gopkg v0.1.3
go: upgraded github.com/bytedance/sonic v1.14.0 => v1.15.0
go: upgraded github.com/bytedance/sonic/loader v0.3.0 => v0.5.0
go: upgraded github.com/cloudwego/base64x v0.1.5 => v0.1.6
$ go1.26rc3 build -v ./...
$
```

* chore(utils): update version range for json

bytedance/sonic, to include 1.26

Signed-off-by: Dwi Siswanto <git@dw1.io>

---------

Signed-off-by: Dwi Siswanto <git@dw1.io>
Co-authored-by: Dwi Siswanto <git@dw1.io>
…6908)

Bumps the modules group with 2 updates: [github.com/projectdiscovery/wappalyzergo](https://github.com/projectdiscovery/wappalyzergo) and [github.com/projectdiscovery/cdncheck](https://github.com/projectdiscovery/cdncheck).


Updates `github.com/projectdiscovery/wappalyzergo` from 0.2.67 to 0.2.68
- [Release notes](https://github.com/projectdiscovery/wappalyzergo/releases)
- [Commits](projectdiscovery/wappalyzergo@v0.2.67...v0.2.68)

Updates `github.com/projectdiscovery/cdncheck` from 1.2.22 to 1.2.23
- [Release notes](https://github.com/projectdiscovery/cdncheck/releases)
- [Commits](projectdiscovery/cdncheck@v1.2.22...v1.2.23)

---
updated-dependencies:
- dependency-name: github.com/projectdiscovery/wappalyzergo
  dependency-version: 0.2.68
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: modules
- dependency-name: github.com/projectdiscovery/cdncheck
  dependency-version: 1.2.23
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: modules
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
projectdiscovery#6828)

Clone the data map before modification to prevent race conditions when
multiple goroutines call evaluateVarsWithInteractsh concurrently with
a shared map.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
@SolariSystems
Copy link
Author

Hi! Following up on this PR. Let me know if there are any changes needed or if anything should be adjusted. Happy to iterate on feedback. Thanks!

Remove .solari_deps_installed that was accidentally committed.
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 21, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@neo-by-projectdiscovery-dev
Copy link

neo-by-projectdiscovery-dev bot commented Feb 21, 2026

Neo Security Audit

High: 2 · Medium: 7

Highlights

  • All GitHub Actions remain properly pinned to commit SHAs (actions/checkout, projectdiscovery/actions/*)
  • Workflow triggers are limited to push events on dev branch and manual workflow_dispatch
High (2)
Medium (7)
  • Unpinned GitHub Actions allow supply chain attacks.github/workflows/typos.yml:0
    GitHub Actions are pinned to mutable tags (@v2) instead of immutable commit SHAs. An attacker who compromises the actions/checkout or actions/setup-python repositories could inject malicious code that would execute in this workflow.
  • Unpinned GitHub Actions in typos.toml workflow.github/workflows/typos.toml:0
    GitHub Actions are pinned to mutable tags (@v2) instead of immutable commit SHAs. Same vulnerability as typos.yml - allows supply chain attacks if upstream actions are compromised.
  • Unpinned custom GitHub Actions in memogen workflow.github/workflows/memogen.yaml:0
    Custom projectdiscovery actions are pinned to mutable tags (@v1, @v6) instead of commit SHAs. While these are internal actions, they still present supply chain risk if the actions repository is compromised.
  • Suboptimal typos installation method in CI workflow.github/workflows/typos.yml:0
    The workflow installs typos via pip (Python package manager) instead of using the official GitHub Action or pre-built binaries. While the PyPI package is legitimate, this approach is less secure and less efficient than the recommended methods.
  • Unpinned pip package version allows supply chain drift.github/workflows/typos.yml:0
    The command 'pip install typos' installs the latest version without pinning to a specific version or hash. This allows automatic updates that could introduce breaking changes or malicious code if the package is compromised.
  • Suboptimal typos installation method in CI workflow.github/workflows/typos.yml:1
    The workflow installs typos via pip (Python package manager) instead of using the official GitHub Action or pre-built binaries. While the PyPI package is legitimate, this approach is less secure and less efficient than the recommended methods.
  • Unpinned pip package version allows supply chain drift.github/workflows/typos.yml:1
    The command 'pip install typos' installs the latest version without pinning to a specific version or hash. This allows automatic updates that could introduce breaking changes or malicious code if the package is compromised.
Attack Examples

Unpinned GitHub Actions allow supply chain attacks (.github/workflows/typos.yml:0):

Attacker compromises actions/checkout repo and publishes malicious v2 tag that exfiltrates GITHUB_TOKEN and repository secrets

Unpinned GitHub Action: projectdiscovery/actions/setup/git (.github/workflows/memogen.yaml:0):

Attacker updates @v1 tag → malicious code runs in workflow → exfiltrates secrets from environment → pushes backdoor via line 29

Unpinned GitHub Action: projectdiscovery/actions/commit (.github/workflows/memogen.yaml:0):

Attacker updates @v1 tag → malicious commit action injects backdoor into codebase → automated push (line 29) deploys malicious code
Suggested Fixes

Unpinned GitHub Actions allow supply chain attacks (.github/workflows/typos.yml:0):

Pin actions to specific commit SHAs: uses: actions/checkout@<commit-sha> and uses: actions/setup-python@<commit-sha>. Use Dependabot to keep them updated.

Unpinned GitHub Actions in typos.toml workflow (.github/workflows/typos.toml:0):

Pin actions to specific commit SHAs: uses: actions/checkout@<commit-sha> and uses: actions/setup-python@<commit-sha>

Unpinned custom GitHub Actions in memogen workflow (.github/workflows/memogen.yaml:0):

Pin all actions to commit SHAs, including internal projectdiscovery/actions. Example: uses: actions/checkout@a12b3c4d5e6f... and uses: projectdiscovery/actions/setup/go@abc123...

Suboptimal typos installation method in CI workflow (.github/workflows/typos.yml:0):

Replace the Python setup and pip install steps with the official typos GitHub Action:

Unpinned pip package version allows supply chain drift (.github/workflows/typos.yml:0):

If continuing with pip installation, pin to a specific version and verify with hash:

Suboptimal typos installation method in CI workflow (.github/workflows/typos.yml:1):

Replace the Python setup and pip install steps with the official typos GitHub Action:

Unpinned pip package version allows supply chain drift (.github/workflows/typos.yml:1):

If continuing with pip installation, pin to a specific version and verify with hash:

Unpinned GitHub Action: projectdiscovery/actions/setup/git (.github/workflows/memogen.yaml:0):

Pin to commit SHA: uses: projectdiscovery/actions/setup/git@<commit-sha> # v1

Unpinned GitHub Action: projectdiscovery/actions/commit (.github/workflows/memogen.yaml:0):

Pin to commit SHA: uses: projectdiscovery/actions/commit@<commit-sha> # v1
AI Agent Fix Prompts
Suboptimal typos installation method in CI workflow (`.github/workflows/typos.yml:0`):

Replace pip install typos with official crate-ci/typos GitHub Action


Unpinned pip package version allows supply chain drift (`.github/workflows/typos.yml:0`):

Pin typos package version with hash verification or switch to official GitHub Action


Suboptimal typos installation method in CI workflow (`.github/workflows/typos.yml:1`):

Replace pip install typos with official crate-ci/typos GitHub Action


Unpinned pip package version allows supply chain drift (`.github/workflows/typos.yml:1`):

Pin typos package version with hash verification or switch to official GitHub Action


Hardening Notes
  • All GitHub Actions remain properly pinned to commit SHAs (actions/checkout, projectdiscovery/actions/*)
  • Workflow triggers are limited to push events on dev branch and manual workflow_dispatch
  • Bot execution is prevented via actor check
  • No user-controlled input flows into shell commands

Comment @neo help for available commands. · Open in Neo


steps:
- name: Checkout code
uses: actions/checkout@v2

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Unpinned GitHub Actions allow supply chain attacks (CWE-1357) — GitHub Actions are pinned to mutable tags (@v2) instead of immutable commit SHAs. An attacker who compromises the actions/checkout or actions/setup-python repositories could inject malicious code that would execute in this workflow.

Attack Example
Attacker compromises actions/checkout repo and publishes malicious v2 tag that exfiltrates GITHUB_TOKEN and repository secrets
Suggested Fix
Pin actions to specific commit SHAs: uses: actions/checkout@<commit-sha> and uses: actions/setup-python@<commit-sha>. Use Dependabot to keep them updated.


steps:
- name: Checkout code
uses: actions/checkout@v2

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Unpinned GitHub Actions in typos.toml workflow (CWE-1357) — GitHub Actions are pinned to mutable tags (@v2) instead of immutable commit SHAs. Same vulnerability as typos.yml - allows supply chain attacks if upstream actions are compromised.

Suggested Fix
Pin actions to specific commit SHAs: uses: actions/checkout@<commit-sha> and uses: actions/setup-python@<commit-sha>

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: projectdiscovery/actions/setup/go@v1

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Unpinned custom GitHub Actions in memogen workflow (CWE-1357) — Custom projectdiscovery actions are pinned to mutable tags (@v1, @v6) instead of commit SHAs. While these are internal actions, they still present supply chain risk if the actions repository is compromised.

Suggested Fix
Pin all actions to commit SHAs, including internal projectdiscovery/actions. Example: uses: actions/checkout@a12b3c4d5e6f... and uses: projectdiscovery/actions/setup/go@abc123...

…in attacks (CWE-1357)** — GitHub Actions are pinned to mutable tags (@v2) instead of immutable commit SHAs; 🟡 **Unpinned GitHub Actions in typos.toml workfl
…in attacks (CWE-1357)** — GitHub Actions are pinned to mutable tags (@v2) instead of immutable commit SHAs; 🟡 **Unpinned GitHub Actions in typos.toml workfl

- name: Install typos
run: |
pip install typos

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Suboptimal typos installation method in CI workflow — The workflow installs typos via pip (Python package manager) instead of using the official GitHub Action or pre-built binaries. While the PyPI package is legitimate, this approach is less secure and less efficient than the recommended methods.

Suggested Fix
Replace the Python setup and pip install steps with the official typos GitHub Action:

```yaml
- name: Check spelling with typos
  uses: crate-ci/typos@v1.28.3

Alternatively, install the pre-built binary directly:

- name: Install typos
  run: |
    curl -LsSf https://github.com/crate-ci/typos/releases/latest/download/typos-x86_64-unknown-linux-musl.tar.gz | tar xzf - -C /usr/local/bin
</details>

<details>
<summary><strong>AI Agent Prompt</strong></summary>

Replace pip install typos with official crate-ci/typos GitHub Action

</details>


- name: Install typos
run: |
pip install typos

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Unpinned pip package version allows supply chain drift — The command 'pip install typos' installs the latest version without pinning to a specific version or hash. This allows automatic updates that could introduce breaking changes or malicious code if the package is compromised.

Suggested Fix
If continuing with pip installation, pin to a specific version and verify with hash:

```yaml
- name: Install typos
  run: |
    pip install typos==1.40.0 --require-hashes --hash=sha256:...

However, switching to the official GitHub Action (as recommended above) is the better solution as it uses pinned commit SHAs.

</details>

<details>
<summary><strong>AI Agent Prompt</strong></summary>

Pin typos package version with hash verification or switch to official GitHub Action

</details>

@@ -0,0 +1,28 @@
name: Typos Check

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Suboptimal typos installation method in CI workflow — The workflow installs typos via pip (Python package manager) instead of using the official GitHub Action or pre-built binaries. While the PyPI package is legitimate, this approach is less secure and less efficient than the recommended methods.

Suggested Fix
Replace the Python setup and pip install steps with the official typos GitHub Action:

```yaml
- name: Check spelling with typos
  uses: crate-ci/typos@v1.28.3

Alternatively, install the pre-built binary directly:

- name: Install typos
  run: |
    curl -LsSf https://github.com/crate-ci/typos/releases/latest/download/typos-x86_64-unknown-linux-musl.tar.gz | tar xzf - -C /usr/local/bin
</details>

<details>
<summary><strong>AI Agent Prompt</strong></summary>

Replace pip install typos with official crate-ci/typos GitHub Action

</details>

@@ -0,0 +1,28 @@
name: Typos Check

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Unpinned pip package version allows supply chain drift — The command 'pip install typos' installs the latest version without pinning to a specific version or hash. This allows automatic updates that could introduce breaking changes or malicious code if the package is compromised.

Suggested Fix
If continuing with pip installation, pin to a specific version and verify with hash:

```yaml
- name: Install typos
  run: |
    pip install typos==1.40.0 --require-hashes --hash=sha256:...

However, switching to the official GitHub Action (as recommended above) is the better solution as it uses pinned commit SHAs.

</details>

<details>
<summary><strong>AI Agent Prompt</strong></summary>

Pin typos package version with hash verification or switch to official GitHub Action

</details>

steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: projectdiscovery/actions/setup/go@v1
- uses: projectdiscovery/actions/setup/git@v1

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Unpinned GitHub Action: projectdiscovery/actions/setup/git (CWE-829) — Action projectdiscovery/actions/setup/git@v1 uses mutable tag instead of commit SHA

Attack Example
Attacker updates @v1 tag → malicious code runs in workflow → exfiltrates secrets from environment → pushes backdoor via line 29
Suggested Fix
Pin to commit SHA: uses: projectdiscovery/actions/setup/git@<commit-sha> # v1

- run: make memogen
- run: git status -s | wc -l | xargs -I {} echo CHANGES={} >> $GITHUB_OUTPUT
id: status
- uses: projectdiscovery/actions/commit@v1

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Unpinned GitHub Action: projectdiscovery/actions/commit (CWE-829) — Action projectdiscovery/actions/commit@v1 uses mutable tag instead of commit SHA

Attack Example
Attacker updates @v1 tag → malicious commit action injects backdoor into codebase → automated push (line 29) deploys malicious code
Suggested Fix
Pin to commit SHA: uses: projectdiscovery/actions/commit@<commit-sha> # v1

…in attacks (CWE-1357)** — GitHub Actions are pinned to mutable tags (@v2) instead of immutable commit SHAs; 🟡 **Unpinned GitHub Actions in typos.toml workfl
…in attacks (CWE-1357)** — GitHub Actions are pinned to mutable tags (@v2) instead of immutable commit SHAs; 🟡 **Unpinned GitHub Actions in typos.toml workfl
@SolariSystems
Copy link
Author

Closing — the linked issue #6871 has been closed. Thanks for the consideration.

@SolariSystems SolariSystems deleted the bounty/SBR_projectdis_nuclei_6532 branch March 1, 2026 21:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants