Views
No views yet
Qwen/Qwen2.5-Coder-1.5B-Instruct for Static Application Security Testing (SAST) of authentication and authorization logic flaws.1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer
3from peft import PeftModel
4
5base_model_id = "Qwen/Qwen2.5-Coder-1.5B-Instruct"
6adapter_id = "poonia98/authguard-1.5b"
7
8tokenizer = AutoTokenizer.from_pretrained(base_model_id, trust_remote_code=True)
9base_model = AutoModelForCausalLM.from_pretrained(
10 base_model_id,
11 torch_dtype=torch.float16,
12 device_map="auto",
13 trust_remote_code=True
14)
15
16model = PeftModel.from_pretrained(base_model, adapter_id)
17
18code_snippet = '''
19@app.get("/api/user/{user_id}/documents/{doc_id}")
20def get_doc(user_id: int, doc_id: int, db: Session = Depends(get_db)):
21 # Vulnerability: Direct query without verifying tenant_id or user ownership
22 return db.query(Document).filter(Document.id == doc_id).first()
23'''
24
25prompt = f"<|im_start|>system\\nYou are an expert security auditor specialized in web application authentication and authorization vulnerabilities.\\nOutput valid JSON.\\n<|im_end|>\\n<|im_start|>user\\nLanguage: python\\n\\nCode:\\n```python\\n{code_snippet}\\n```<|im_end|>\\n<|im_start|>assistant\\n"
26
27inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
28outputs = model.generate(**inputs, max_new_tokens=256, do_sample=False)
29print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))