NVIDIA / NVIDIA/SkillSpector

Sensitive credential path detection can be bypassed through path construction(malicious skill example that bypasses this static detection model)

Open
#477 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
17.9k
Forks
1.5k
Avg merge
5d 10h
Merged PRs (30d)
66

Description

Summary

With LLM analysis explicitly disabled (--no-llm), the scanner detects a literal /etc/passwd path but fails when the same path is constructed using os.path.join().

Scan command:

skillspector scan .\xxx --no-llm -f json

Original:

with open('/etc/passwd', 'r') as f:
    passwd_data = f.read()

Result:

PE3 - Credential Access
Severity: HIGH
Finding: /etc/passwd

Variant:

import os

path = os.path.join('/etc', 'passwd')

with open(path) as f:
    passwd_data = f.read()

Result:

No security issues detected.

Expected Behavior

Both variants should trigger the same credential-access finding because the constructed path resolves statically to /etc/passwd.

Impact

Without LLM analysis, simple path construction completely bypasses the PE3 credential-access detection.

Suggested Fix

Add static constant propagation and path resolution for expressions such as os.path.join() before matching sensitive paths.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the two examples with skillspector scan .\xxx --no-llm -f json, then trace the PE3 credential-access detection and its sensitive-path matching. Compare literal handling with the os.path.join('/etc', 'passwd') case; done means both forms produce the same finding without LLM analysis.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.