File tree Expand file tree Collapse file tree 5 files changed +40
-8
lines changed Expand file tree Collapse file tree 5 files changed +40
-8
lines changed Original file line number Diff line number Diff line change 2828 "args" : [
2929 " lookup" ,
3030 " --id" ,
31- " CVE-2025-11683 "
31+ " CVE-2022-27225 "
3232 ]
3333 },
3434 {
Original file line number Diff line number Diff line change @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44
55[project ]
66name = " cve-explorer-cli"
7- version = " 0.2.51 "
7+ version = " 0.2.6 "
88description = " View CVEs and related info with CLI interface"
99readme = " README.md"
1010requires-python = " >=3.11"
Original file line number Diff line number Diff line change @@ -59,9 +59,23 @@ def main():
5959 weaknesses = res ['vulnerabilities' ][0 ]['cve' ]['weaknesses' ],
6060 severity = f"CVSS 3.1: { res_v31 } ({ res_v31_base } ), CVSS 2.0: { res_v2 } ({ res_v2_base } )"
6161 )
62-
62+ epss_resp = request_epss (args .id )
63+ if epss_resp != '' :
64+ _epss = EPSS (
65+ cve_id = epss_resp ['data' ][0 ]['cve' ],
66+ epss_value = epss_resp ['data' ][0 ]['epss' ],
67+ percentile = epss_resp ['data' ][0 ]['percentile' ],
68+ date = epss_resp ['data' ][0 ]['date' ]
69+ )
70+ custom_cve .epss_value = _epss .epss_value
71+ custom_cve .epss_percentile = _epss .percentile
72+ custom_cve .epss_date = _epss .date
73+
6374 print ("\n " )
6475 custom_cve .display_cve ()
76+
77+ # TODO: Add a JSON pretty print for CVEs
78+
6579 elif args .command == "epss" :
6680 epss_resp = request_epss (args .id )
6781 _epss = EPSS (
Original file line number Diff line number Diff line change @@ -73,6 +73,10 @@ class CVE:
7373 weaknesses : Any
7474 severity : str
7575
76+ epss_value : str
77+ epss_percentile : str
78+ epss_date : str
79+
7680 def __init__ (
7781 self ,
7882 id ,
@@ -100,6 +104,12 @@ def display_cve(self):
100104
101105 table .add_row ("CVE" , f"[bold]{ self .id } [/]" )
102106 table .add_row ("Severity" , f"{ self .severity } " )
107+ if self .epss_value != '' :
108+ table .add_row ("EPSS Value" , f"{ self .epss_value } " )
109+ if self .epss_percentile != '' :
110+ table .add_row ("EPSS Percentile" , f"{ self .epss_percentile } " )
111+ if self .epss_date != '' :
112+ table .add_row ("EPSS Date" , f"{ self .epss_date } " )
103113 table .add_row ("Status" , f"[yellow]{ self .vuln_status } [/]" )
104114 table .add_row ("Published" , self .published )
105115 table .add_row ("Source" , self .source_identifier )
Original file line number Diff line number Diff line change @@ -15,10 +15,14 @@ def request_epss(cve_id: str) -> Any:
1515 Any: _description_
1616 """
1717 res = requests .get (
18- f'https://api.first.org/data/v1/epss?cve={ cve_id .capitalize ()} ' ,
18+ f'https://api.first.org/data/v1/epss?cve={ cve_id .upper ()} ' ,
1919 timeout = 10
2020 )
21- return res .json ()
21+ if res .status_code == 404 :
22+ print (f'HTTP 404 - request_epss({ cve_id } ) not found.' )
23+ return ''
24+ elif res .status_code == 200 :
25+ return res .json ()
2226
2327def request_cve (cve_id : str ) -> Any :
2428 """Request CVE information from First (api.first.org)
@@ -30,8 +34,12 @@ def request_cve(cve_id: str) -> Any:
3034 _type_: _description_
3135 """
3236 res = requests .get (
33- f'https://services.nvd.nist.gov/rest/json/cves/2.0?cveId={ cve_id .capitalize ()} ' ,
37+ f'https://services.nvd.nist.gov/rest/json/cves/2.0?cveId={ cve_id .upper ()} ' ,
3438 timeout = 10
3539 )
36- response_json = res .json ()
37- return response_json
40+ if res .status_code == 404 :
41+ print (f'HTTP 404 - request_cve({ cve_id } ) not found.' )
42+ return ''
43+ elif res .status_code == 200 :
44+ response_json = res .json ()
45+ return response_json
You can’t perform that action at this time.
0 commit comments