mirror of
https://github.com/KeygraphHQ/shannon.git
synced 2026-09-23 10:10:51 +02:00
feat(worker): deduplicate static and runtime findings before exploitation
Parse Agentic SAST SARIF into typed observations, enrich and route those observations, and reconcile them with pentest findings before exploitation. Publish deterministic exploitation queues with stable lineage, exact-path Git commits, retry-safe manifests, named drop reasons, and confined task formation. Reject duplicate producer IDs before commit and adopt either legal provenance shape after a lost acknowledgement.
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
* Deterministic exploit collector → markdown renderer.
|
||||
*
|
||||
* Single entry point renderExploitDeliverable(vulnClass, state, idToType)
|
||||
* covers all 5 exploitation agents (injection, xss, auth, ssrf, authz). The
|
||||
* covers all exploitation agents. The
|
||||
* per-class deltas are limited to title and ID prefix; every section, label,
|
||||
* and sort rule is class-agnostic. Section headers and bolded field labels
|
||||
* mirror the prescribed-Markdown skeleton from the existing exploit-*.txt
|
||||
@@ -30,18 +30,19 @@
|
||||
* as `- {ID} ({vulnerability_type})`. Omitted when every queue ID was emitted.
|
||||
*/
|
||||
|
||||
import type { AddExploitInput, VulnClass } from '../collectors/exploit-collector.js';
|
||||
import type { AddExploitInput, ExploitClass } from '../collectors/exploit-collector.js';
|
||||
|
||||
// ============================================================================
|
||||
// PER-CLASS CONSTANTS
|
||||
// ============================================================================
|
||||
|
||||
const TITLES: Record<VulnClass, string> = {
|
||||
const TITLES: Record<ExploitClass, string> = {
|
||||
injection: 'Injection Exploitation Evidence',
|
||||
xss: 'Cross-Site Scripting (XSS) Exploitation Evidence',
|
||||
auth: 'Authentication Exploitation Evidence',
|
||||
ssrf: 'SSRF Exploitation Evidence',
|
||||
authz: 'Authorization Exploitation Evidence',
|
||||
miscellaneous: 'Miscellaneous Exploitation Evidence',
|
||||
};
|
||||
|
||||
// ============================================================================
|
||||
@@ -203,7 +204,7 @@ function renderUnprocessedSection(missingIds: readonly string[], idToType: Reado
|
||||
// ============================================================================
|
||||
|
||||
export function renderExploitDeliverable(
|
||||
vulnClass: VulnClass,
|
||||
vulnClass: ExploitClass,
|
||||
state: readonly AddExploitInput[],
|
||||
idToType: ReadonlyMap<string, string>,
|
||||
): string {
|
||||
|
||||
Reference in New Issue
Block a user