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: The framework for exploits

The goal of this project is to make CVE development fast and easy by providing a framework that allows quick exploit development.

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 ForgeParser

The parser is the part of the code that parse the user input and turn it into your function requirements or what is the same the part that turns commands flags into function keywords arguments.

from cveforge import ForgeParser

class YourParser(ForgeParser):
    def setUp(self): # Here you may setup your command metadata as its name and arguments
        self.add_argument("--my-flag")

The command entrypoint

from cveforge import tcve_command
from cveforge import Context
from .parser import YourParser
import logging


@tcve_command("your_command_name", parser=YourParser)
def your_parser(context: Context, my_flag: str):
    logging.info("Running your command with flag '%s'", my_flag)

You may never add defaults on your function definition and rather use the parser defined default when adding your argument.

Usage:

your_command_name --my-flag "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("cve_2025_0001", categories=["cve", "privilege escalation"])
def main(context: Context, **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

TODO

  1. Using the completer along with the command create a feedback event that allows the completer to determine which kind of info display the user

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.0.tar.gz (6.2 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.0-py3-none-any.whl (7.3 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cveforge-0.1.0.tar.gz
  • Upload date:
  • Size: 6.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.8

File hashes

Hashes for cveforge-0.1.0.tar.gz
Algorithm Hash digest
SHA256 95ec9801c6ab987ee62d066e6e9bfa05a3b235fd80127f2024728f96726c0cec
MD5 806ae0b2384d70cf4f67c386544246f6
BLAKE2b-256 927a33e9b54c854193471941930048b3a6f76ce44a01cc483af5db80c41a2b33

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cveforge-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.8

File hashes

Hashes for cveforge-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 36804bfa0f405e968a65c73c86e68e2e8279a92e3b438f0506824dfbc3bc7f61
MD5 161c600163394f933a913c54d0b51bc0
BLAKE2b-256 b9e54961b94f1f9705d63525454f5becf44fd2eda1473e15df664c359c02ce04

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