202 lines
8.7 KiB
Markdown
Raw Normal View History

# nvd-json-data-feeds
Community reconstruction of the soon-to-be deprecated JSON NVD Data Feeds.
[Releases](https://github.com/fkie-cad/nvd-json-data-feeds/releases/latest) each day at 00:00 AM UTC.
Repository synchronizes with the NVD every 2 hours.
## Repository at a Glance
### Last Repository Update
```plain
2023-11-02T21:00:19.350421+00:00
```
### Most recent CVE Modification Timestamp synchronized with NVD
```plain
2023-11-02T20:57:37.993000+00:00
```
### Last Data Feed Release
Download and Changelog: [Click](https://github.com/fkie-cad/nvd-json-data-feeds/releases/latest)
```plain
2023-11-01T01:00:13.544214+00:00
```
### Total Number of included CVEs
```plain
229655
```
### CVEs added in the last Commit
Recently added CVEs: `16`
* [CVE-2023-31016](CVE-2023/CVE-2023-310xx/CVE-2023-31016.json) (`2023-11-02T19:15:40.947`)
* [CVE-2023-31017](CVE-2023/CVE-2023-310xx/CVE-2023-31017.json) (`2023-11-02T19:15:41.033`)
* [CVE-2023-31018](CVE-2023/CVE-2023-310xx/CVE-2023-31018.json) (`2023-11-02T19:15:41.103`)
* [CVE-2023-31019](CVE-2023/CVE-2023-310xx/CVE-2023-31019.json) (`2023-11-02T19:15:41.180`)
* [CVE-2023-31020](CVE-2023/CVE-2023-310xx/CVE-2023-31020.json) (`2023-11-02T19:15:41.247`)
* [CVE-2023-31021](CVE-2023/CVE-2023-310xx/CVE-2023-31021.json) (`2023-11-02T19:15:41.313`)
* [CVE-2023-31022](CVE-2023/CVE-2023-310xx/CVE-2023-31022.json) (`2023-11-02T19:15:41.380`)
* [CVE-2023-31023](CVE-2023/CVE-2023-310xx/CVE-2023-31023.json) (`2023-11-02T19:15:41.453`)
* [CVE-2023-31026](CVE-2023/CVE-2023-310xx/CVE-2023-31026.json) (`2023-11-02T19:15:41.527`)
* [CVE-2023-31027](CVE-2023/CVE-2023-310xx/CVE-2023-31027.json) (`2023-11-02T19:15:41.597`)
* [CVE-2023-5923](CVE-2023/CVE-2023-59xx/CVE-2023-5923.json) (`2023-11-02T19:15:41.673`)
* [CVE-2023-5924](CVE-2023/CVE-2023-59xx/CVE-2023-5924.json) (`2023-11-02T19:15:41.747`)
* [CVE-2023-5925](CVE-2023/CVE-2023-59xx/CVE-2023-5925.json) (`2023-11-02T20:15:10.103`)
* [CVE-2023-5926](CVE-2023/CVE-2023-59xx/CVE-2023-5926.json) (`2023-11-02T20:15:10.183`)
* [CVE-2023-5927](CVE-2023/CVE-2023-59xx/CVE-2023-5927.json) (`2023-11-02T20:15:10.257`)
* [CVE-2023-5928](CVE-2023/CVE-2023-59xx/CVE-2023-5928.json) (`2023-11-02T20:15:10.337`)
### CVEs modified in the last Commit
Recently modified CVEs: `34`
* [CVE-2022-36921](CVE-2022/CVE-2022-369xx/CVE-2022-36921.json) (`2023-11-02T20:52:20.690`)
* [CVE-2022-36922](CVE-2022/CVE-2022-369xx/CVE-2022-36922.json) (`2023-11-02T20:52:24.460`)
* [CVE-2022-38663](CVE-2022/CVE-2022-386xx/CVE-2022-38663.json) (`2023-11-02T20:52:29.600`)
* [CVE-2022-38664](CVE-2022/CVE-2022-386xx/CVE-2022-38664.json) (`2023-11-02T20:52:32.417`)
* [CVE-2022-38665](CVE-2022/CVE-2022-386xx/CVE-2022-38665.json) (`2023-11-02T20:53:03.907`)
* [CVE-2022-38666](CVE-2022/CVE-2022-386xx/CVE-2022-38666.json) (`2023-11-02T20:53:11.360`)
* [CVE-2022-36904](CVE-2022/CVE-2022-369xx/CVE-2022-36904.json) (`2023-11-02T20:57:37.993`)
* [CVE-2023-5746](CVE-2023/CVE-2023-57xx/CVE-2023-5746.json) (`2023-11-02T19:01:11.237`)
* [CVE-2023-40401](CVE-2023/CVE-2023-404xx/CVE-2023-40401.json) (`2023-11-02T19:43:45.520`)
* [CVE-2023-5726](CVE-2023/CVE-2023-57xx/CVE-2023-5726.json) (`2023-11-02T19:57:30.190`)
* [CVE-2023-5727](CVE-2023/CVE-2023-57xx/CVE-2023-5727.json) (`2023-11-02T20:09:22.683`)
* [CVE-2023-5728](CVE-2023/CVE-2023-57xx/CVE-2023-5728.json) (`2023-11-02T20:12:56.233`)
* [CVE-2023-5724](CVE-2023/CVE-2023-57xx/CVE-2023-5724.json) (`2023-11-02T20:17:36.167`)
* [CVE-2023-5725](CVE-2023/CVE-2023-57xx/CVE-2023-5725.json) (`2023-11-02T20:28:43.127`)
* [CVE-2023-21395](CVE-2023/CVE-2023-213xx/CVE-2023-21395.json) (`2023-11-02T20:37:40.020`)
* [CVE-2023-21394](CVE-2023/CVE-2023-213xx/CVE-2023-21394.json) (`2023-11-02T20:38:00.393`)
* [CVE-2023-21371](CVE-2023/CVE-2023-213xx/CVE-2023-21371.json) (`2023-11-02T20:38:18.707`)
* [CVE-2023-21370](CVE-2023/CVE-2023-213xx/CVE-2023-21370.json) (`2023-11-02T20:38:36.647`)
* [CVE-2023-21369](CVE-2023/CVE-2023-213xx/CVE-2023-21369.json) (`2023-11-02T20:38:51.333`)
* [CVE-2023-21367](CVE-2023/CVE-2023-213xx/CVE-2023-21367.json) (`2023-11-02T20:39:14.803`)
* [CVE-2023-21368](CVE-2023/CVE-2023-213xx/CVE-2023-21368.json) (`2023-11-02T20:39:30.460`)
* [CVE-2023-21366](CVE-2023/CVE-2023-213xx/CVE-2023-21366.json) (`2023-11-02T20:39:50.183`)
* [CVE-2023-21365](CVE-2023/CVE-2023-213xx/CVE-2023-21365.json) (`2023-11-02T20:40:11.590`)
* [CVE-2023-21364](CVE-2023/CVE-2023-213xx/CVE-2023-21364.json) (`2023-11-02T20:40:26.690`)
* [CVE-2023-5633](CVE-2023/CVE-2023-56xx/CVE-2023-5633.json) (`2023-11-02T20:48:33.403`)
## Download and Usage
There are several ways you can work with the data in this repository:
### 1) Release Data Feed Packages
The most straightforward approach is to obtain the latest Data Feed release packages [here](https://github.com/fkie-cad/nvd-json-data-feeds/releases/latest).
Each day at 00:00 AM UTC we package and upload JSON files that aim to reconstruct the legacy NVD CVE Data Feeds.
Those are aggregated by the `year` part of the CVE identifier:
```
# CVE-<YEAR>.json
CVE-1999.json
CVE-2001.json
CVE-2002.json
CVE-2003.json
[...]
CVE-2023.json
```
We also upload the well-known `Recent` and `Modified` feeds.
Furthermore, we provide the `All` feed, which contains a recent snapshot of all NVD records.
Once your local copy is synchronized and the last synchronization is no older than 8 days, you can rely on these to stay up to date:
```plain
CVE-Recent.json # CVEs that were added in the previous eight days
CVE-Modified.json # CVEs that were modified or added in the previous eight days
```
Note that all feeds are distributed in `xz`-compressed format to save storage and bandwidth.
For decompression execute:
```sh
xz -d -k <feed>.json.xz
```
#### Automation using Release Data Feed Packages
You can fetch the latest releases for each package with the following static link layout:
```sh
https://github.com/fkie-cad/nvd-json-data-feeds/releases/latest/download/CVE-<YEAR>.json.xz
```
Example:
```sh
wget https://github.com/fkie-cad/nvd-json-data-feeds/releases/latest/download/CVE-2023.json.xz
xz -d -k CVE-2023.json.xz
```
### 2) Clone the Repository (with Git History)
As you can see by browsing this repository, there is a slight difference between the release packages format and the repository folder structure.
This is because we want to maintain explorability of the dataset.
Each CVE gets its own JSON file, e.g., `CVE-1999-0001.json`.
Here, each file is put into a folder layout that first sorts by CVE `year` identifier part and then by `number` part.
We mask (`xx`) the last two digits to create easily navigable folders that hold a maximum of 100 CVE JSON files:
```plain
.
├── CVE-1999
│ ├── CVE-1999-00xx
│ │ ├── CVE-1999-0001.json
│ │ ├── CVE-1999-0002.json
│ │ └── [...]
│ ├── CVE-1999-01xx
│ │ ├── CVE-1999-0101.json
│ │ └── [...]
│ └── [...]
├── CVE-2000
│ ├── CVE-2000-00xx
│ ├── CVE-2000-01xx
│ └── [...]
└── [...]
```
A byproduct of managing and continuously updating this dataset via Git is that we can track changes over time through the Git history.
If you are interested in having the NVD data as organized above, including the historical data of changes, just clone this repository (large!):
```sh
git clone https://github.com/fkie-cad/nvd-json-data-feeds.git
```
### 3) Clone the Repository (without Git History)
Don't need the history? Then create a shallow copy:
```sh
git clone --depth 1 -b main https://github.com/fkie-cad/nvd-json-data-feeds.git
```
## Motivation
As of September 2023, the NIST will retire all [JSON-based NVD Data Feeds](https://nvd.nist.gov/vuln/data-feeds#divRetirementBanner-1).
The new [NVD CVE API 2.0](https://nvd.nist.gov/developers/vulnerabilities) is, without a doubt, a great way to obtain CVE information.
However, we from [Fraunhofer FKIE - Cyber Analysis and Defense](https://www.fkie.fraunhofer.de/en/departments/cad.html) believe that the API does not cover a variety of use cases.
The legacy NVD Data Feeds provided a convenient way to quickly obtain a complete, file-based offline database snapshot; just download the `CVE-<YEAR>.tar.gz`, decompress it, and use it as you please, e.g.:
* Put the JSON feed into a document-based database and quickly leverage upon that data in your software project, ...
* Parse and analyze it using your favorite programming language, ...
* Put it on a USB stick and transfer it to a system without internet access, or ...
* Query the file using `jq`!
Unfortunately, the new NVD API 2.0 adds complexity to this process.
We want to preserve ease of use by reconstructing these data sources.
## Non-Endorsement Clause
This project uses and redistributes data from the NVD API but is not endorsed or certified by the NVD.