Files
NeuroSploit/backend/schemas/vulnerability.py
2026-01-19 19:21:57 -03:00

73 lines
1.7 KiB
Python

"""
NeuroSploit v3 - Vulnerability Schemas
"""
from datetime import datetime
from typing import Optional, List
from pydantic import BaseModel
class VulnerabilityTestResponse(BaseModel):
"""Schema for vulnerability test response"""
id: str
scan_id: str
endpoint_id: Optional[str]
vulnerability_type: str
payload: Optional[str]
request_data: dict
response_data: dict
is_vulnerable: bool
confidence: Optional[float]
evidence: Optional[str]
tested_at: datetime
class Config:
from_attributes = True
class VulnerabilityResponse(BaseModel):
"""Schema for vulnerability response"""
id: str
scan_id: str
test_id: Optional[str]
title: str
vulnerability_type: str
severity: str
cvss_score: Optional[float]
cvss_vector: Optional[str]
cwe_id: Optional[str]
description: Optional[str]
affected_endpoint: Optional[str]
poc_request: Optional[str]
poc_response: Optional[str]
poc_payload: Optional[str]
impact: Optional[str]
remediation: Optional[str]
references: List
ai_analysis: Optional[str]
created_at: datetime
class Config:
from_attributes = True
class VulnerabilityTypeInfo(BaseModel):
"""Information about a vulnerability type"""
type: str
name: str
category: str
description: str
severity_range: str # "medium-critical"
owasp_category: Optional[str] = None
cwe_ids: List[str] = []
class VulnerabilitySummary(BaseModel):
"""Summary of vulnerabilities for dashboard"""
total: int = 0
critical: int = 0
high: int = 0
medium: int = 0
low: int = 0
info: int = 0
by_type: dict = {}