Skip to main content

Framework that aim to enhance the developer experience for CVEs, malware, scans and reports. Aimed to Red and Blue cybersecurity teams.

Project description

CVE Forge: A Unified, Actionable Penetration Testing Framework

CVE Forge is a framework inspired by metasploit aiming to focus on real life scenarios and help pentesters all around the world to be able to find peace by providing them all the tools anyone really needs, the Forge is not about working with outdated vulnerabilities that we know won't work, but rather the Forge focuses on actionable vulnerabilities and establishes a standardized methodology for responsible vulnerability disclosure and exploit development within a framework.

Why this matter?

When starting my career as a pentester and bug hunter I had found that we need a lot of tools, for recoignance, osint, enumeration, exploitation and much more, but what is actually hilarious is the fact that Kali linux or Black Arch does have a lot of tools but no tool that present them all together. Hopefully and perhaps like a dream someday the Kali and BlackArch team will include this inside their built-in tools, but still the goal of this tools is more than engineering all pentesting tools together but actually leveraging the speed for which a pentester developes a ZDE and make a report out of it.

Code of conduct

Even though the actual extended code of conduct is in here is important to understand the next lines described below very clear.

  • 1st. The Software Developer and contributors of this framework do not make themselves responsible for any wrongdoing resulting on the use of the provided framework.
  • 2nd. Zero-Day Policy: Do not submit Zero-Day Exploits (ZDEs) as Pull Requests (PRs). Responsible disclosure to the vendor must be completed before any related exploit code can be considered for inclusion. Use the framework's local testing features for development purposes only.
  • 3rd. ANY pentesting activity and exploitation of ANY vulnerability on unauthorized area is considered to be ILLEGAL and can be subjected to legal actions against yourself, avoid taking unnecessary risks, for that purpose we provide playgrounds and for real life jobs you can find in the Forge website references to bounty programs like HackerOne, Google or Meta bounty programs.

Install

pip install cveforge
cveforge --help
cveforge echo hello there
cveforge # to run interactively

Quickstart

NOTE: This is a TODO meaning is YET to be implemented

uv init # helps you to work in a virtualenv
uv add cveforge # add the cveforge dependency
uv run cveforge scaffold payload --verbose-name WannaCry # add to the forge DB the path to the current project
uv run cveforge scaffold exploit --verbose-name "RSA Cracking" --cve-name cve_2025_0002 # add to the forge DB the path to the current project
uv run cveforge scaffold command --verbose-name "sftp" # add to the forge DB the path to the current project
uv run cveforge # now whenever we modify the payload, the exploit or the command project the cveforge self-refresh

Developing a Malware or Payload

Please note that even though this software allows to create and use malware is intended for authorized pentesting only, with the idea in mind of helping malware develop is not causing unauthorize damage but quickly letting clients know how much can impact a vulnerability into their system.

PR including malware WON'T be merged instead malware development is exclusive for the team responsible of developing this software as countermeasure for safe usage is to be taken (NOTE: this can change in the future when we run this software in an isolated environment)

Developing a command

As you may have noticed this project is a shell like software, you can use command like ping, ip etc... with the only caveat that all commands are to be made using python, even though we support payload development with Rust, we won't be integrating with Rust for exploits or command as this doesn't offer any benefit except for speed AFAIC.

Once you do the quickstart step for developing a command you'd have two pieces of structures a ForgeParser and a decorated function.

The command entrypoint

from cveforge import tcve_command
from cveforge import Context
import typer
import logging


@tcve_command()
def your_command_name(my_flag: str = typer.Argument()): # WE NOW SUPPORT TYPER!!!
    context: Context = Context() # store general program data
    logging.info("Running your command with flag '%s'", my_flag)

Usage:

your_command_name "CVE Forge is amazing!!!" # output: info: Running your command with flag 'CVE Forge is amazing!!!'

Developing an Exploit or PoC for CVEs

Developing an exploit is just like creating a command but rather than using the @tcve_command we use the @tcve_exploit like follows:

from cveforge import tcve_exploit

@tcve_exploit(categories=["cve", "privilege escalation"])
def exploit_name(**kwargs):
    pass

Note the categories is also a possible command for the @tcve_command decorator, is useful for allowing the user to search with different queries for your command

FIXME: Known Bugs

  1. Cannot open two instances at the same time, even if not intended a more user friendly behavior should be implemented

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cveforge-0.1.1.tar.gz (2.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cveforge-0.1.1-py3-none-any.whl (2.7 MB view details)

Uploaded Python 3

File details

Details for the file cveforge-0.1.1.tar.gz.

File metadata

  • Download URL: cveforge-0.1.1.tar.gz
  • Upload date:
  • Size: 2.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cveforge-0.1.1.tar.gz
Algorithm Hash digest
SHA256 869e6901116875aa9cd6799b52f72f65980d037334337918ce4d16608b0c9f2c
MD5 85d19506abeb2be00f7cbff73aef6041
BLAKE2b-256 fe4ee8f178fae9224055717fe094b4d3f404200c901b84fa40fb9786eacb9ac2

See more details on using hashes here.

File details

Details for the file cveforge-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: cveforge-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cveforge-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a90a2b90473f1d49f50f3f94c06f869386bec01c763c2e756c79badf20752446
MD5 f9c11593c4f621422f5d50b04c0ed4ee
BLAKE2b-256 c705e44ed88a93e427cc147a80a08e8b57e3c986912a5b709a8968e7850b8cda

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page