Skip to main content

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


Download files

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

Source Distribution

fedivuln-1.4.2.tar.gz (23.2 kB view details)

Uploaded Source

Built Distribution

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

fedivuln-1.4.2-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

Details for the file fedivuln-1.4.2.tar.gz.

File metadata

  • Download URL: fedivuln-1.4.2.tar.gz
  • Upload date:
  • Size: 23.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fedivuln-1.4.2.tar.gz
Algorithm Hash digest
SHA256 5c0e8ea2708f78e36dbf3f8cfd3d02bb1679cde9dffabf31f885fef35d9154f4
MD5 1f2158ea70395ee32e5ca6cdace4898c
BLAKE2b-256 441d44595b7cc4c8696e2d03e6978d8337756d0577e689ecd1a5d5c643dd816f

See more details on using hashes here.

Provenance

The following attestation bundles were made for fedivuln-1.4.2.tar.gz:

Publisher: release.yml on vulnerability-lookup/FediVuln

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fedivuln-1.4.2-py3-none-any.whl.

File metadata

  • Download URL: fedivuln-1.4.2-py3-none-any.whl
  • Upload date:
  • Size: 25.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fedivuln-1.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1f92ebe9ba0089f2c093cc8579e7898f8b6040f5f38bab7870e0a8c2002fadbf
MD5 63fa85603d0b8a7aea5f10dc110b28ef
BLAKE2b-256 3b9f88384232dfd90fc74cd059b10ca307290ee6f68047be0cb190d7689bc47f

See more details on using hashes here.

Provenance

The following attestation bundles were made for fedivuln-1.4.2-py3-none-any.whl:

Publisher: release.yml on vulnerability-lookup/FediVuln

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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