v1.6.0 update#395
Conversation
ref GDSA-1212
…raphwidget Expose selection mode in widget
Support GDS 2.0 API
…ionships-in-graphwidget Expose the selected nodes and relationships
notebooks dont support 2.0a1 yet. (will be updated once 2.0 is out)
| enable-cache: true | ||
| - run: uv sync --group dev --extra pandas --extra neo4j --extra gds | ||
| - name: Install just | ||
| uses: extractions/setup-just@v2 |
There was a problem hiding this comment.
Semgrep identified an issue in your code:
extractions/setup-just@v2 uses a movable third-party tag, so a retagged or compromised action could run attacker-controlled code in CI and access Aura credentials.
More details about this
Install just pulls extractions/setup-just@v2, which is a moving tag from a third-party GitHub repository rather than a specific commit. If the extractions/setup-just repo is compromised or its v2 tag is retargeted, this workflow will run the attacker’s code on the runner before just py-ci-test-gds starts, with access to the job environment including AURA_API_CLIENT_ID, ${{ secrets.AURA_API_CLIENT_SECRET }}, and AURA_API_PROJECT_ID.
A plausible attack looks like this:
- An attacker gains control of the
extractions/setup-justrepository or its release/tag management. - They move the
v2tag to a new commit that adds a malicious step inside the action. - When this workflow runs
uses: extractions/setup-just@v2, GitHub Actions fetches that new code automatically because the reference is not immutable. - The malicious action reads the job’s environment or workspace and exfiltrates values such as
AURA_API_CLIENT_SECRET, for example by sending them to an attacker-controlled server. - The attacker can then use the stolen Aura credentials and project ID to access or manipulate the same Aura resources this test job uses.
Because the reference is @v2 instead of a full 40-character commit SHA, anyone who can change what v2 points to can change what code your CI executes.
To resolve this comment:
✨ Commit fix suggestion
-
Replace the tag-based action reference with a full 40-character commit SHA in the
usesline.
Changeuses: extractions/setup-just@v2touses: extractions/setup-just@<full-commit-sha> # v2. -
Resolve the SHA from the current
v2release in theextractions/setup-justrepository, and use that exact commit hash instead of the tag.
This keeps the workflow on the intended version while making the action immutable. -
Keep the version comment after the SHA so future updates are easier to review.
Use the same format asuses: extractions/setup-just@<full-commit-sha> # v2. -
Alternatively, if you need to stay aligned with a newer upstream release instead of the current
v2target, pin to the full commit SHA for that newer release and update the trailing comment to match, for example# v3.
💬 Ignore this finding
Reply with Semgrep commands to ignore this finding.
/fp <comment>for false positive/ar <comment>for acceptable risk/other <comment>for all other reasons
Alternatively, triage in Semgrep AppSec Platform to ignore the finding created by third-party-action-not-pinned-to-commit-sha.
To get more information about secure coding and some most popular vulnerabilities, check our secure coding guidelines
You can view more details about this finding in the Semgrep AppSec Platform.
Thank you for your contribution to the Graph Visualization for Python project by Neo4j.
Before submitting this PR, please read Contributing to the Neo4j Ecosystem.
Make sure: