Skip to content

Commit f8e53c6

Browse files
committed
[26. January 2025] - Version 0.12.0
1 parent f429c72 commit f8e53c6

File tree

6 files changed

+886
-544
lines changed

6 files changed

+886
-544
lines changed

CHANGELOG.md

+26
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
11
# 📆 Changelog
22

3+
## [26. January 2025] - Version 0.12.0
4+
5+
- **CVSS Parsing Enhancements**
6+
Updated the `extract_cvss_info()` function to handle a broader range of CVSS fields: checks for CVSSv4.0, v3.1, v3.0, and v3 in that order, and then falls back to ADP entries if necessary.
7+
8+
- **Date Parsing Unification**
9+
Introduced a new `parse_iso_date()` helper. Replaced direct `datetime.fromisoformat()` calls throughout the code with this function for consistent date formatting, including error handling for trailing Z characters.
10+
11+
- **VulnCheck Key Handling**
12+
Improved error handling for the VulnCheck API key check—now returns a clearer error message if no VulnCheck key is configured.
13+
14+
- **HTML Report Template Overhaul**
15+
Updated and reformatted the HTML export template for improved readability and consistency. Enhanced the layout for displaying references, exploit details, and the AI-powered risk assessment. Moved to a more standardized code style.
16+
17+
- **Refined Public Exploits Display**
18+
Enhanced how exploit PoCs are sorted and displayed.
19+
20+
- **Dependency Upgrades**
21+
Updated `requests` (2.32.2 → 2.32.3), `jinja2` (3.1.4 → 3.1.5), and `openai` (1.30.2 → 1.60.1) in `requirements.txt`.
22+
23+
24+
- **General Code Cleanup**
25+
- Organized imports and method parameters for clarity (e.g., specifying `params=` in all relevant requests).
26+
- Tweaked debug output for loading the configuration file, making it more verbose and consistent.
27+
- Adjusted logic for selecting public exploits to be clearer and more maintainable.
28+
329
## [05. September 2024] - Version 0.11.0
430

531
- **Method Selection Added**: Introduced a new `-m` argument to allow users to selectively run specific methods (e.g., `cisa`, `epss`, `hackerone`, `ai`, `prio`, `references`). This enables more granular control over which data sources and assessments are retrieved for each CVE.

README.md

+16-12
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ pip install -r requirements.txt
7373
pip install --user sploitscan
7474
```
7575

76-
### Kali/Ubuntu/Debian
76+
### Kali/Ubuntu/Debian (might not the latest version)
7777

7878
```shell
7979
apt install sploitscan
@@ -86,18 +86,21 @@ apt install sploitscan
8686

8787
### Configuration File
8888

89-
Note: The OpenAI and VulnCheck API keys are optional. The OpenAI API key is used for AI-powered risk assessment, and the VulnCheck API key is used for VulnCheck data retrieval. If you do not intend to use these features, you can omit the configuration file or leave the API key fields blank.
89+
SploitScan searches for a `config.json` in multiple locations by default. It will load the first valid file it finds, in this order:
9090

91-
Create a `config.json` file in one of the following locations with your API keys:
91+
1. **Custom path passed via `--config` or `-c`**
92+
2. **Environment variable**: `SPLOITSCAN_CONFIG_PATH`
93+
3. **Local and standard config-file locations**:
94+
- Current working directory
95+
- `~/.sploitscan/config.json`
96+
- `~/.config/sploitscan/config.json`
97+
- `~/Library/Application Support/sploitscan/config.json` (macOS)
98+
- `%APPDATA%/sploitscan/config.json` (Windows)
99+
- `/etc/sploitscan/config.json`
92100

93-
- Current directory
94-
- `~/.sploitscan/`
95-
- `~/.config/sploitscan/`
96-
- `/etc/sploitscan/`
97-
- `~/Library/Application Support/sploitscan/` (macOS)
98-
- `%APPDATA%/sploitscan/` (Windows)
101+
> **Note**: Only one file is loaded — the first one found in the above sequence. You can place your `config.json` in any of these paths.
99102
100-
You can also specify a custom configuration file path using the `--config` or `-c` command-line argument.
103+
A typical `config.json` might look like this:
101104

102105
```json
103106
{
@@ -117,7 +120,7 @@ $ sploitscan.py -h
117120
╚════██║██╔═══╝ ██║ ██║ ██║██║ ██║ ╚════██║██║ ██╔══██║██║╚██╗██║
118121
███████║██║ ███████╗╚██████╔╝██║ ██║ ███████║╚██████╗██║ ██║██║ ╚████║
119122
╚══════╝╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═══╝
120-
v0.11.0 / Alexander Hagenah / @xaitax / [email protected]
123+
v0.12.0 / Alexander Hagenah / @xaitax / [email protected]
121124

122125
usage: sploitscan.py [-h] [-e {json,JSON,csv,CSV,html,HTML}] [-t {nessus,nexpose,openvas,docker}] [-m METHODS] [-i IMPORT_FILE] [-c CONFIG] [-d] [cve_ids ...]
123126

@@ -136,7 +139,8 @@ options:
136139
-m METHODS, --methods METHODS
137140
Specify which methods to run, separated by commas. Options: 'cisa', 'epss', 'hackerone', 'ai', 'prio', 'references', etc.
138141
-i IMPORT_FILE, --import-file IMPORT_FILE
139-
Path to an import file from a vulnerability scanner. If used, CVE IDs can be omitted from the command line arguments.
142+
Path to an import file. If used, CVE IDs can be omitted from the command line arguments. Expected file type is a plain text file with one CVE per line. Vulnerability scanner
143+
files can be imported also with the --type argument to specify the correct type
140144
-c CONFIG, --config CONFIG
141145
Path to a custom config file.
142146
-d, --debug Enable debug output.

docs/sploitscan.1

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.TH SploitScan 1 "Version 0.11.0" "SploitScan user manual"
1+
.TH SploitScan 1 "Version 0.12.0" "SploitScan user manual"
22
.SH NAME
33
\fBSploitScan\fP - A tool to fetch and display vulnerability information and public exploits for given CVE IDs.
44
.PP

requirements.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
requests==2.32.2
2-
jinja2==3.1.4
3-
openai==1.30.2
1+
requests==2.32.3
2+
jinja2==3.1.5
3+
openai==1.60.1

0 commit comments

Comments
 (0)