java-audit-pipeline

Audits Java source code through a five-phase pipeline with evidence-based vulnerability confirmation.

1.7k|238|Updated Dec 7, 2019
One-click install
npx skills add https://github.com/wgpsec/AboutSecurity --skill java-audit-pipeline
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: java-audit-pipeline
Source: https://github.com/wgpsec/AboutSecurity/tree/main/skills/code-audit/java/java-audit-pipeline
Command: npx skills add https://github.com/wgpsec/AboutSecurity --skill java-audit-pipeline

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

White-box Java security audits often produce false positives when dangerous functions are flagged without verifying data flow, filtering, or reachability. This Skill provides a systematic five-phase audit pipeline that requires complete Source-to-Sink evidence chains before any vulnerability is marked as confirmed.

Core Features & Use Cases

  • Five-Phase Audit Pipeline: Route mapping, permission modeling, data flow tracing, categorized vulnerability audit, and report assembly with a unified severity scoring formula.
  • Evidence Contract System: EVID_* evidence points per vulnerability type (SQL, CMD, SSRF, XSS, deserialization, XXE, and more) prevent hallucinated findings by requiring documented data flow proof.
  • Decompilation & SAST Support: CFR/Procyon/FernFlower decompilation strategies for JAR/WAR deliverables, plus guidance on Semgrep, SonarQube, CodeQL, and Snyk as candidate-finding tools.
  • Use Case: Given a Spring Boot fat JAR with no source code, decompile it, map all controllers and unauthenticated routes, trace user input to dangerous sinks, and produce a scored audit report with exploit chain assembly.

Quick Start

Audit this Java project for security vulnerabilities using the five-phase white-box pipeline and report only evidence-backed findings.

Frequently Asked Questions about java-audit-pipeline

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I audit Java source code for security vulnerabilities?

Follow a five-phase pipeline: map all routes and entry points, model authentication coverage, trace data flow from user-controlled sources to dangerous sinks, audit by vulnerability category, then assemble a scored report. Every confirmed finding needs a complete evidence chain.

How to decompile a Spring Boot JAR for security review?

Extract the JAR with jar -xf, then run CFR against BOOT-INF/classes for business code and selectively decompile suspicious dependencies in BOOT-INF/lib. CFR handles modern Java syntax best; use Procyon or FernFlower as fallbacks.

What are common Java dangerous functions to check in code audit?

Key sinks include Runtime.exec and ProcessBuilder for command injection, Statement.executeQuery and MyBatis ${} for SQL injection, ObjectInputStream.readObject and FastJSON parseObject for deserialization, and DocumentBuilderFactory.parse for XXE. Each requires verifying user input reachability.

Semgrep vs CodeQL for Java static analysis?

Semgrep is faster for pattern-based initial screening with customizable rules, while CodeQL supports deeper cross-file data flow queries but requires building a database from compilable code. Tool results are only candidates and must be manually verified against the evidence chain.

How do I avoid false positives in Java code audits?

Use an evidence contract approach: never mark a vulnerability confirmed without a complete Source-to-Sink trace showing user input reaching the sink with insufficient filtering. Mark incomplete traces as pending verification rather than confirmed findings.

Can I audit Java applications without source code?

Yes, decompile .class, JAR, or WAR files with CFR first. Decompiled output can serve as evidence, but paths involving lambdas, reflection, or obfuscated code should be downgraded to pending verification status.