Skip to main content

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

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.5.0.tar.gz (23.3 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.5.0-py3-none-any.whl (25.8 kB view details)

Uploaded Python 3

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

Hashes for fedivuln-1.5.0.tar.gz
Algorithm Hash digest
SHA256 80fe9b3c1f05444b6d5e18e4830f844a9c78f517c25a08674799f7c282a62661
MD5 9c6f3c5767f5252ee63121458f434484
BLAKE2b-256 861b078de987db7ca231806eb263a1e2462bca2f425ec0ea3c746e744b805b58

See more details on using hashes here.

Provenance

The following attestation bundles were made for fedivuln-1.5.0.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.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

Hashes for fedivuln-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5dfb04c10e12d543610b36e577267011d8e4f0f3788c5642afd5a96a90512268
MD5 76388be66f455609378238b48aa50aa0
BLAKE2b-256 6018738ccac3ea0dfc95f40ec5e23d948df5529b9a14eb36be113969eba31c69

See more details on using hashes here.

Provenance

The following attestation bundles were made for fedivuln-1.5.0-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.

Release history Release notifications | RSS feed

This release

1.5.0 This release

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.1

2 files

1.2.0

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.4

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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