A client to gather vulnerability-related information from the Fediverse.
Project description
FediVuln
A client to gather vulnerability-related information from the Fediverse. The collected data is then sent to the Vulnerability-Lookup API as sightings.
Installation
pipx is an easy way to install and run Python applications in isolated environments. It's easy to install.
$ pipx install FediVuln
$ export FEDIVULN_CONFIG=~/.FediVuln/conf.py
The configuration for FediVuln should be defined in a Python file (e.g., ~/.FediVuln/conf.py).
You must then set an environment variable (FEDIVULN_CONFIG) with the full path to this file.
You can have a look at this example of configuration.
With Docker
git clone https://github.com/vulnerability-lookup/FediVuln
cd FediVuln
# Make sure conf.py exists in the project root before running
docker compose up --build
[!NOTE] The docker-compose.yml expects a conf.py file in the root directory. You can create it manually or copy the provided example:
$ cp fedivuln/conf_sample.py conf.py
Usage
Register your application
$ FediVuln-Register
This script uses OAuth in order to retrieve the access token. This is achieved in several steps.
- Register the application with Mastodon instance, a including all necessary scopes
- Instantiate Mastodon client with client credentials
- Log in - Generate authorization URL with the exact same scopes
- Once the user authorizes, prompt for the authorization code
- Use the authorization code to retrieve the access token, with the same scopes
You only have to execute it once.
Streaming
FediVuln-Stream streams data from the Fediverse and uses PyVulnerabilityLookup to create sightings in Vulnerability-Lookup.
usage: FediVuln-Stream [-h] [--user] [--public] [--push-sighting] [--push-status]
Allows access to the streaming API.
options:
-h, --help show this help message and exit
--user Streams events that are relevant to the authorized user, i.e. home timeline and notifications.
--public Streams public events.
--push-sighting Push the sightings to Vulnerability Lookup.
--push-status Push the status to Vulnerability Lookup.
Examples
Streams events that are relevant to the authorized user, i.e. home timeline and notifications:
$ FediVuln-Stream --user --push-sighting
If you want to get the stream of public events (local server + connected servers):
$ FediVuln-Stream --public --push-sighting
Using the --push-sighting argument, detected vulnerability IDs will be recorded in
Vulnerability Lookup as
sightings.
Publishing
FediVuln-Publish subscribes to an HTTP or Redis event stream and publishes the incoming data to the Fediverse.
$ FediVuln-Publish --help
usage: FediVuln-Publish [-h] [-t {vulnerability,comment,bundle,sighting}]
options:
-h, --help show this help message and exit
-t {vulnerability,comment,bundle,sighting}, --topic {vulnerability,comment,bundle,sighting}
The topic to subscribe to.
The authentication to the HTTP event stream is automatically handled by PyVulnerabilityLookup.
For each incoming event, a status will be posted using the configured Mastodon account.
The format of the status is dynamically tailored to the specific event topic.
For instance, executing the command FediVuln-Publish -t comment will capture all
new comments and share a human-readable summary on the Fediverse, including a link to the
original comment on the Vulnerability-Lookup instance.
Search
$ FediVuln-Search --help
usage: FediVuln-Search [-h] --query QUERY
Allows you to search for users, tags and, when enabled, full text, by default within your own posts and those you have interacted with.
options:
-h, --help show this help message and exit
--query QUERY Query of the search.
License
FediVuln is licensed under GNU General Public License version 3
Copyright (c) 2024-2026 Computer Incident Response Center Luxembourg (CIRCL)
Copyright (C) 2024-2026 Cédric Bonhomme - https://github.com/cedricbonhomme
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 fedivuln-1.5.0.tar.gz.
File metadata
- Download URL: fedivuln-1.5.0.tar.gz
- Upload date:
- Size: 23.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80fe9b3c1f05444b6d5e18e4830f844a9c78f517c25a08674799f7c282a62661
|
|
| MD5 |
9c6f3c5767f5252ee63121458f434484
|
|
| BLAKE2b-256 |
861b078de987db7ca231806eb263a1e2462bca2f425ec0ea3c746e744b805b58
|
Provenance
The following attestation bundles were made for fedivuln-1.5.0.tar.gz:
Publisher:
release.yml on vulnerability-lookup/FediVuln
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fedivuln-1.5.0.tar.gz -
Subject digest:
80fe9b3c1f05444b6d5e18e4830f844a9c78f517c25a08674799f7c282a62661 - Sigstore transparency entry: 1399320863
- Sigstore integration time:
-
Permalink:
vulnerability-lookup/FediVuln@07bc3fca1048a0bc844412e9da47f14a378b4140 -
Branch / Tag:
refs/tags/v1.5.0 - Owner: https://github.com/vulnerability-lookup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@07bc3fca1048a0bc844412e9da47f14a378b4140 -
Trigger Event:
release
-
Statement type:
File details
Details for the file fedivuln-1.5.0-py3-none-any.whl.
File metadata
- Download URL: fedivuln-1.5.0-py3-none-any.whl
- Upload date:
- Size: 25.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5dfb04c10e12d543610b36e577267011d8e4f0f3788c5642afd5a96a90512268
|
|
| MD5 |
76388be66f455609378238b48aa50aa0
|
|
| BLAKE2b-256 |
6018738ccac3ea0dfc95f40ec5e23d948df5529b9a14eb36be113969eba31c69
|
Provenance
The following attestation bundles were made for fedivuln-1.5.0-py3-none-any.whl:
Publisher:
release.yml on vulnerability-lookup/FediVuln
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fedivuln-1.5.0-py3-none-any.whl -
Subject digest:
5dfb04c10e12d543610b36e577267011d8e4f0f3788c5642afd5a96a90512268 - Sigstore transparency entry: 1399320867
- Sigstore integration time:
-
Permalink:
vulnerability-lookup/FediVuln@07bc3fca1048a0bc844412e9da47f14a378b4140 -
Branch / Tag:
refs/tags/v1.5.0 - Owner: https://github.com/vulnerability-lookup
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@07bc3fca1048a0bc844412e9da47f14a378b4140 -
Trigger Event:
release
-
Statement type: