BETA Shoulder ist in der Beta — Befunde können manchmal falsch sein. Dein Feedback bestimmt, was wir als Nächstes beheben. Feedback teilen
📥

Inclusion of Functionality from Untrusted Control Sphere

🛡️ 4 Regeln erkennen dies

Inclusion of Functionality from Untrusted Control Sphere

The product imports, requires, or includes executable functionality from a source that is outside of the intended control sphere.

When software includes functionality from untrusted sources (such as third-party scripts, external modules, or code from untrusted URLs), attackers can inject malicious code that will be executed with the same privileges as the application.

Verbreitung
Hoch
Häufig ausgenutzt
Auswirkung
Hoch
3 Regeln mit hohem Schweregrad
Prävention
Dokumentiert
4 Fix-Beispiele
2 Prävention
2 Prävention

So behebst du diese Schwachstelle

Präventionsstrategien für Inclusion of Untrusted Functionality basierend auf 4 Shoulder-Erkennungsregeln.

LLM Supply Chain Vulnerabilities HIGH

Use an allowlist for permitted models, verify integrity with checksums, and load models over HTTPS only

+17 -4 go
- func handler(w http.ResponseWriter, r *http.Request) {
-     modelPath := r.FormValue("model")
-     model, _ := loadModel(modelPath)
-     resp, _ := http.Get("http://example.com/model.onnx")
+ var allowedModels = map[string]string{
+     "sentiment": "https://models.example.com/sentiment-v2.onnx",
+     "classify":  "https://models.example.com/classify-v1.onnx",
+ }
+ 
+ func handler(w http.ResponseWriter, r *http.Request) {
+     modelID := r.FormValue("model")
+     url, ok := allowedModels[modelID]
+     if !ok {
+         http.Error(w, "invalid model", http.StatusBadRequest)
+         return
+     }
+     data, _ := downloadModel(url)
+     if !verifyChecksum(data, expectedChecksums[modelID]) {
+         return fmt.Errorf("checksum verification failed")
+     }
+     model, _ := loadModel(data)
  }
  
LLM Supply Chain Vulnerabilities HIGH

Use allowlists for permitted models and verify integrity with checksums

+7 -2 javascript
- app.post('/predict', async (req, res) => {
-   const model = await loadModel(req.body.modelId);
+ const ALLOWED_MODELS = { 'sentiment-v1': true, 'classify-v2': true };
+ 
+ app.post('/predict', async (req, res) => {
+   if (!ALLOWED_MODELS[req.body.modelId]) {
+     return res.status(400).json({ error: 'Model not allowed' });
+   }
+   const model = await loadVerifiedModel(req.body.modelId);
    const result = await model.predict(req.body.input);
  });
  
Container Using Latest Tag MEDIUM

Pin container images to specific version tags or SHA digests for reproducible deployments

+1 -1 yaml
  apiVersion: v1
  kind: Pod
  spec:
    containers:
    - name: app
-     image: nginx:latest
+     image: nginx:1.25.3-alpine
  
LLM Supply Chain Vulnerabilities HIGH

Use weights_only=True with torch.load, avoid trust_remote_code=True, and maintain a model allowlist

+14 -3 python
  import torch
  from transformers import AutoModel
- 
- model = torch.load('model.pt')
- nlp_model = AutoModel.from_pretrained('custom/model', trust_remote_code=True)
+ from safetensors.torch import load_model
+ 
+ # Safe: weights_only prevents arbitrary code execution
+ model = torch.load('model.pt', weights_only=True)
+ 
+ # Even safer: use SafeTensors format
+ load_model(model, 'model.safetensors')
+ 
+ # Allowlist for HuggingFace models
+ ALLOWED_MODELS = ['bert-base-uncased', 'distilbert-base-uncased']
+ model_id = request.json['model']
+ if model_id not in ALLOWED_MODELS:
+     raise ValueError('Model not in allowlist')
+ nlp_model = AutoModel.from_pretrained(model_id)
  
3 Erkennung
3 Erkennung

Finden Sie Schwachstellen in Ihrem Code

Verwenden Sie Shoulder, um Ihren Code nach Inclusion of Functionality from Untrusted Control Sphere-Mustern zu scannen. 4 Regeln.

Terminal
# Scan with Shoulder CLI
npx @shoulderdev/cli trust --cwe=829

# Or scan entire project
npx @shoulderdev/cli trust .

Erkennungsregeln (4)

4 Warnzeichen
4 Warnzeichen

Worauf bei Code-Reviews zu achten ist

Diese Muster weisen auf potenzielle Inclusion of Functionality from Untrusted Control Sphere-Schwachstellen hin. Achten Sie bei Code-Reviews und Sicherheitsaudits darauf.

🟠
Potential supply chain vulnerability: ... go-llm-supply-chain
🟠
supply chain vulnerabilities in AI/LLM implementations such as untrusted model sources or dynamic mo go-llm-supply-chain
🟠
potential supply chain vulnerabilities in AI/LLM implementations javascript-llm-supply-chain
🟡
Container image uses 'latest' tag or no tag. kubernetes-image-latest-tag
🟡
container images using 'latest' tag or no tag kubernetes-image-latest-tag
🔍

Scanne deine Codebasis nach Inclusion of Functionality from Untrusted Control Sphere

Shoulder CLI findet anfällige Muster in deiner gesamten Codebasis.