FediVuln


NameFediVuln JSON
Version 0.7.0 PyPI version JSON
download
home_pagehttps://github.com/CIRCL/FediVuln
SummaryA client to gather vulnerability-related information from the Fediverse.
upload_time2025-01-14 19:50:30
maintainerNone
docs_urlNone
authorCédric Bonhomme
requires_python<4.0,>=3.10
licenseGPL-3.0-or-later
keywords vulnerability-lookup vulnerability cve fediverse mastodon
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # FediVuln

A client to gather vulnerability-related information from the Fediverse.
The collected data is then sent to the
[Vulnerability-Lookup](https://github.com/cve-search/vulnerability-lookup) API as sightings.


## Installation

[pipx](https://github.com/pypa/pipx) is an easy way to install and run Python applications in isolated environments.
It's easy to [install](https://github.com/pypa/pipx?tab=readme-ov-file#on-linux).

```bash
$ 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](https://github.com/CIRCL/FediVuln/blob/main/fedivuln/conf_sample.py) of configuration.


## Usage

### Register your application

```bash
$ 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.

```bash
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:

```bash
$ FediVuln-Stream --user --push-sighting
```

If you want to get the stream of public events (local server + connected servers):

```bash
$ FediVuln-Stream --public --push-sighting
```

Using the ``--push-sighting`` argument, detected vulnerability IDs will be recorded in
[Vulnerability Lookup](https://github.com/cve-search/vulnerability-lookup) as
[sightings](https://vulnerability-lookup.readthedocs.io/en/latest/sightings.html).


### Publishing

``FediVuln-Publish`` subscribes to an HTTP or Redis event stream and publishes the incoming data to the Fediverse.

```bash
$ FediVuln-Publish --help
usage: FediVuln-Publish [-h] [-t {vulnerability,comment,bundle,sighting}]

options:
  -h, --help            show this help message and exit
  -t, --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

```bash
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](https://github.com/CIRCL/FediVuln) is licensed under
[GNU General Public License version 3](https://www.gnu.org/licenses/gpl-3.0.html)

~~~
Copyright (c) 2024-2025 Computer Incident Response Center Luxembourg (CIRCL)
Copyright (C) 2024-2025 Cédric Bonhomme - https://github.com/cedricbonhomme
~~~

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/CIRCL/FediVuln",
    "name": "FediVuln",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "Vulnerability-Lookup, Vulnerability, CVE, Fediverse, Mastodon",
    "author": "C\u00e9dric Bonhomme",
    "author_email": "cedric.bonhomme@circl.lu",
    "download_url": "https://files.pythonhosted.org/packages/2f/da/481672fd5177c75d0a5a7fe3766b665661568ecf0162517ba63ed8872e72/fedivuln-0.7.0.tar.gz",
    "platform": null,
    "description": "# FediVuln\n\nA client to gather vulnerability-related information from the Fediverse.\nThe collected data is then sent to the\n[Vulnerability-Lookup](https://github.com/cve-search/vulnerability-lookup) API as sightings.\n\n\n## Installation\n\n[pipx](https://github.com/pypa/pipx) is an easy way to install and run Python applications in isolated environments.\nIt's easy to [install](https://github.com/pypa/pipx?tab=readme-ov-file#on-linux).\n\n```bash\n$ pipx install FediVuln\n$ export FEDIVULN_CONFIG=~/.FediVuln/conf.py\n```\n\nThe configuration for FediVuln should be defined in a Python file (e.g., ``~/.FediVuln/conf.py``).\nYou must then set an environment variable (``FEDIVULN_CONFIG``) with the full path to this file.\n\nYou can have a look at [this example](https://github.com/CIRCL/FediVuln/blob/main/fedivuln/conf_sample.py) of configuration.\n\n\n## Usage\n\n### Register your application\n\n```bash\n$ FediVuln-Register\n```\n\nThis script uses OAuth in order to retrieve the access token. This is achieved in several steps.\n\n- Register the application with Mastodon instance, a including all necessary scopes\n- Instantiate Mastodon client with client credentials\n- Log in - Generate authorization URL with the exact same scopes\n- Once the user authorizes, prompt for the authorization code\n- Use the authorization code to retrieve the access token, with the same scopes\n\nYou only have to execute it once.\n\n\n### Streaming\n\n``FediVuln-Stream`` streams data from the Fediverse and uses PyVulnerabilityLookup to create sightings in Vulnerability-Lookup.\n\n```bash\nusage: FediVuln-Stream [-h] [--user] [--public] [--push-sighting] [--push-status]\n\nAllows access to the streaming API.\n\noptions:\n  -h, --help       show this help message and exit\n  --user           Streams events that are relevant to the authorized user, i.e. home timeline and notifications.\n  --public         Streams public events.\n  --push-sighting  Push the sightings to Vulnerability Lookup.\n  --push-status    Push the status to Vulnerability Lookup.\n```\n\n#### Examples\n\nStreams events that are relevant to the authorized user, i.e. home timeline and notifications:\n\n```bash\n$ FediVuln-Stream --user --push-sighting\n```\n\nIf you want to get the stream of public events (local server + connected servers):\n\n```bash\n$ FediVuln-Stream --public --push-sighting\n```\n\nUsing the ``--push-sighting`` argument, detected vulnerability IDs will be recorded in\n[Vulnerability Lookup](https://github.com/cve-search/vulnerability-lookup) as\n[sightings](https://vulnerability-lookup.readthedocs.io/en/latest/sightings.html).\n\n\n### Publishing\n\n``FediVuln-Publish`` subscribes to an HTTP or Redis event stream and publishes the incoming data to the Fediverse.\n\n```bash\n$ FediVuln-Publish --help\nusage: FediVuln-Publish [-h] [-t {vulnerability,comment,bundle,sighting}]\n\noptions:\n  -h, --help            show this help message and exit\n  -t, --topic {vulnerability,comment,bundle,sighting}\n                        The topic to subscribe to.\n```\n\nThe authentication to the HTTP event stream is automatically handled by PyVulnerabilityLookup.\n\nFor each incoming event, a status will be posted using the configured Mastodon account.\nThe format of the status is dynamically tailored to the specific event topic.\nFor instance, executing the command ``FediVuln-Publish -t comment`` will capture all\nnew comments and share a human-readable summary on the Fediverse, including a link to the\noriginal comment on the Vulnerability-Lookup instance.\n\n\n\n### Search\n\n```bash\nusage: FediVuln-Search [-h] --query QUERY\n\nAllows you to search for users, tags and, when enabled, full text, by default within your own posts and those you have interacted with.\n\noptions:\n  -h, --help     show this help message and exit\n  --query QUERY  Query of the search.\n```\n\n\n\n## License\n\n[FediVuln](https://github.com/CIRCL/FediVuln) is licensed under\n[GNU General Public License version 3](https://www.gnu.org/licenses/gpl-3.0.html)\n\n~~~\nCopyright (c) 2024-2025 Computer Incident Response Center Luxembourg (CIRCL)\nCopyright (C) 2024-2025 C\u00e9dric Bonhomme - https://github.com/cedricbonhomme\n~~~\n",
    "bugtrack_url": null,
    "license": "GPL-3.0-or-later",
    "summary": "A client to gather vulnerability-related information from the Fediverse.",
    "version": "0.7.0",
    "project_urls": {
        "Homepage": "https://github.com/CIRCL/FediVuln",
        "Repository": "https://github.com/CIRCL/FediVuln"
    },
    "split_keywords": [
        "vulnerability-lookup",
        " vulnerability",
        " cve",
        " fediverse",
        " mastodon"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d610fb350fe9f0f5bca1cfe53be3a5850c00655e4c64f9ea693d3578eead792e",
                "md5": "34e65fcdc6f1aadbcf4080ca8e593077",
                "sha256": "9583737eb28bef2c2c7e2329f6caf8b6008fbfc6b83c6f33914855a573b82bfc"
            },
            "downloads": -1,
            "filename": "fedivuln-0.7.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "34e65fcdc6f1aadbcf4080ca8e593077",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 36689,
            "upload_time": "2025-01-14T19:50:27",
            "upload_time_iso_8601": "2025-01-14T19:50:27.157072Z",
            "url": "https://files.pythonhosted.org/packages/d6/10/fb350fe9f0f5bca1cfe53be3a5850c00655e4c64f9ea693d3578eead792e/fedivuln-0.7.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2fda481672fd5177c75d0a5a7fe3766b665661568ecf0162517ba63ed8872e72",
                "md5": "9f424a67d7d8100e4a5f749785ce9e66",
                "sha256": "45a454fa02ff1110f5a64c6fbe0073c77e8a4e0131b735fbca7236d5dd8bdcf3"
            },
            "downloads": -1,
            "filename": "fedivuln-0.7.0.tar.gz",
            "has_sig": false,
            "md5_digest": "9f424a67d7d8100e4a5f749785ce9e66",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 21311,
            "upload_time": "2025-01-14T19:50:30",
            "upload_time_iso_8601": "2025-01-14T19:50:30.185217Z",
            "url": "https://files.pythonhosted.org/packages/2f/da/481672fd5177c75d0a5a7fe3766b665661568ecf0162517ba63ed8872e72/fedivuln-0.7.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-14 19:50:30",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "CIRCL",
    "github_project": "FediVuln",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "fedivuln"
}
        
Elapsed time: 0.46024s