A solution for remediating vulnerable source code using LLMs.
Project description
AutoFiC
Remediate vulnerable source code at scale using LLMs and automation.
🚀 Overview
AutoFiC is the project, providing a CLI-based automation pipeline for detecting, analyzing, and remediating source code vulnerabilities using the power of LLMs and static analysis tools.
The project is designed for automated security auditing, bulk code scanning, and mass vulnerability remediation across multiple repositories, with seamless integration into modern CI/CD workflows.
✨ Features
-
Automated Vulnerability Detection
Integrates with tools like CodeQL, Semgrep, Snyk Code to identify vulnerabilities in source code. -
LLM-Powered Remediation
Uses Large Language Models to suggest and patch vulnerabilities automatically. -
Multi-Repository Support
Bulk-clone and analyze many repositories with configurable filters (e.g., stars, language). -
CLI Tooling
Command-line interface for easy integration into scripts and CI/CD pipelines. -
SARIF/JSON Reporting
Outputs results in standardized formats for downstream processing or dashboards. -
Extensible and Modular
Easily extend with new vulnerability scanners, languages, or custom rules.
🏗️ Architecture
+---------------------+
| [GitHub Repos] |
+----------+----------+
|
v
+---------------------+
| Vulnerability Scan | (CodeQL / Semgrep / Snyk)
+----------+----------+
|
SARIF/JSON v
+---------------------+
| autofic-core |
| (Orchestrator) |
+----------+----------+
|
+------------------+-------------------+
| |
v v
+---------------------+ +---------------------+
| LLM-based Patch |<-------------->| Patch Validator |
| (OpenAI, etc.) | | (Optional CI) |
+---------------------+ +---------------------+
|
v
+---------------+
| Auto PR to |
| GitHub Repo |
+---------------+
- Vulnerability Scan : Detect vulnerabilities with static analysis tools (CodeQL, Semgrep, Snyk).
- autofic-core : Parses findings, sends code to LLM, receives patch suggestions, applies fixes.
- LLM-based Patch : Uses large language models (e.g., OpenAI) to generate secure code patches.
- Patch Validator (Optional) : Runs CI/tests to validate patches.
- Auto PR : Automatically creates a pull request with the fix to the target repository.
⚡ Getting Started
1. Prerequisites
- Python 3.8+
- CodeQL CLI (for CodeQL support)
- Semgrep CLI (for Semgrep support)
- Snyk CLI (optional)
- GitHub Personal Access Token (if accessing private repos)
2. Installation
Clone the repo and install dependencies:
git clone https://github.com/AutoFiC/autofic-core.git
cd autofic-core
python -m venv .venv
source .venv/bin/activate # (Windows: .venv\Scripts\activate)
pip install --upgrade pip; pip install -r requirements.txt; pip install -e .;
3. Usage
🚦 CLI Example
python -m autofic_core.cli \
--repo <Vulnerable Repository> \
--sast <semgrep|codeql|snyk> \
--llm \
--save-dir <Absolute Path> \
--patch \
--pr
- --repo : Target repository URL
- --sast : Vulnerability scanner to use (semgrep, codeql, etc.)
- --llm : Enable LLM-based remediation
- --save-dir : Directory to store scan results
- --patch : Apply suggested patches
- --pr : Automatically create a Pull Request with fixes
🔄 Typical Workflow
- Scan the target repository for vulnerabilities using static analysis.
- Remediate detected vulnerabilities with automated LLM-based patch suggestions.
- Generate reports and/or create a Pull Request with the security fixes.
- See python -m autofic_core.cli --help for the full list of options and usage details.
🧩 Configuration
Configuration is done via CLI flags and/or .env files.
GITHUB_TOKEN- For accessing private repositories and creating pull requests.OPENAI_API_KEY- For LLM-powered patch suggestions.USER_NAME- Name or ID for audit trails or commit information.DISCORD_WEBHOOK_URL- (Optional) Discord webhook URL for notifications.SLACK_WEBHOOK_URL- (Optional) Slack webhook URL for notifications.
🤝 Contributing
We welcome all contributions!
- Fork the repo and create your branch :
git checkout -b feature/your-feature - Commit your changes :
git commit -am 'Add new feature' - Push to the branch :
git push origin feature/your-feature - Open a Pull Request
📄 License
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
🙋 Contact
- Issues/Feature Requests : GitHub Issues
- Main Team : AutoFiC Organization
- Main Page : AutoFiC Official
👨💻 Developers
👩🏻💻 Development Team
- Minchae Kim (@minxxcozy)
- Eunsol Kim (@eunsol1530)
- Jeongmin Oh (@soonae)
- Inyeong Jang (@inyeongjang)
🔬 Research Team
- Seonju Park (@seoonju)
- Hongseo Jang (@pxxguin)
- Yunji Jeong (@jungyun404)
- Yunjeong Choe (@yjchoe818)
👨🏻🏫 Mentor
- Suhyun Park (@lovehyun)
👨🏻🏫 Project Leader
- Changhyun Lee (@eeche)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file autofic_core-0.1.1.tar.gz.
File metadata
- Download URL: autofic_core-0.1.1.tar.gz
- Upload date:
- Size: 49.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9db4a3d7c90d472b167d2c8dab06dff8e3d67bdcf8364ffe674c0534e93d2107
|
|
| MD5 |
061a8002bb8b8b68003f1cc93937c2cc
|
|
| BLAKE2b-256 |
8495327ff503068b230fdfd8b6404d73257b3ad56137ccb3c3dca0d0fb1eb985
|
File details
Details for the file autofic_core-0.1.1-py3-none-any.whl.
File metadata
- Download URL: autofic_core-0.1.1-py3-none-any.whl
- Upload date:
- Size: 62.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b39a05da237e7856d51fe8283b6e3464427380b4b179dae81c4572104fa93d8
|
|
| MD5 |
da97feb705607216fee30c922a6161f3
|
|
| BLAKE2b-256 |
aa57410d0ecda82a3488e2e7000c78bac084519852901765f596b67dab7264f4
|