{"id":15015374,"url":"https://github.com/giterlizzi/perl-cvss","last_synced_at":"2026-02-26T08:24:19.756Z","repository":{"id":250067038,"uuid":"833371562","full_name":"giterlizzi/perl-CVSS","owner":"giterlizzi","description":"Perl extension for CVSS (Common Vulnerability Scoring System) 2.0/3.x/4.0","archived":false,"fork":false,"pushed_at":"2024-08-16T20:48:48.000Z","size":174,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-10T02:10:44.250Z","etag":null,"topics":["cvss","cvss2","cvss3","cvss4","perl","security","security-tools","securtity-cli"],"latest_commit_sha":null,"homepage":"https://metacpan.org/dist/CVSS","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"artistic-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/giterlizzi.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-24T23:10:40.000Z","updated_at":"2024-08-16T20:48:42.000Z","dependencies_parsed_at":"2024-08-16T21:59:32.731Z","dependency_job_id":null,"html_url":"https://github.com/giterlizzi/perl-CVSS","commit_stats":null,"previous_names":["giterlizzi/perl-cvss"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giterlizzi%2Fperl-CVSS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giterlizzi%2Fperl-CVSS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giterlizzi%2Fperl-CVSS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giterlizzi%2Fperl-CVSS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/giterlizzi","download_url":"https://codeload.github.com/giterlizzi/perl-CVSS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243313635,"owners_count":20271219,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cvss","cvss2","cvss3","cvss4","perl","security","security-tools","securtity-cli"],"created_at":"2024-09-24T19:47:10.212Z","updated_at":"2025-11-08T19:32:25.276Z","avatar_url":"https://github.com/giterlizzi.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Release](https://img.shields.io/github/release/giterlizzi/perl-CVSS.svg)](https://github.com/giterlizzi/perl-CVSS/releases) [![Actions Status](https://github.com/giterlizzi/perl-CVSS/workflows/linux/badge.svg)](https://github.com/giterlizzi/perl-CVSS/actions) [![License](https://img.shields.io/github/license/giterlizzi/perl-CVSS.svg)](https://github.com/giterlizzi/perl-CVSS) [![Starts](https://img.shields.io/github/stars/giterlizzi/perl-CVSS.svg)](https://github.com/giterlizzi/perl-CVSS) [![Forks](https://img.shields.io/github/forks/giterlizzi/perl-CVSS.svg)](https://github.com/giterlizzi/perl-CVSS) [![Issues](https://img.shields.io/github/issues/giterlizzi/perl-CVSS.svg)](https://github.com/giterlizzi/perl-CVSS/issues) [![Coverage Status](https://coveralls.io/repos/github/giterlizzi/perl-CVSS/badge.svg)](https://coveralls.io/github/giterlizzi/perl-CVSS)\n\n# CVSS - Perl extension for CVSS (Common Vulnerability Scoring System) 2.0/3.x/4.0\n\n## Synopsis\n\n```.pl\nuse CVSS;\n\n# OO-interface\n\n# Method 1 - Use params\n\n$cvss = CVSS-\u003enew(\n  version =\u003e '3.1',\n  metrics =\u003e {\n      AV =\u003e 'A',\n      AC =\u003e 'L',\n      PR =\u003e 'L',\n      UI =\u003e 'R',\n      S =\u003e 'U',\n      C =\u003e 'H',\n      I =\u003e 'H',\n      A =\u003e 'H',\n  }\n);\n\n\n# Method 2 - Decode and parse the vector string\n\nuse CVSS;\n\n$cvss = CVSS-\u003efrom_vector_string('CVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H');\n\nsay $cvss-\u003ebase_score; # 7.4\n\n\n# Method 3 - Builder\n\nuse CVSS;\n\n$cvss = CVSS-\u003enew(version =\u003e '3.1');\n$cvss-\u003eattackVector('ADJACENT_NETWORK');\n$cvss-\u003eattackComplexity('LOW');\n$cvss-\u003eprivilegesRequired('LOW');\n$cvss-\u003euserInteraction('REQUIRED');\n$cvss-\u003escope('UNCHANGED');\n$cvss-\u003econfidentialityImpact('HIGH');\n$cvss-\u003eintegrityImpact('HIGH');\n$cvss-\u003eavailabilityImpact('HIGH');\n\n$cvss-\u003ecalculate_score;\n\n# Common methods\n\n# Convert the CVSS object in \"vector string\"\nsay $cvss; # CVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H\n\n# Get metric value\nsay $cvss-\u003eAV; # A\nsay $cvss-\u003eattackVector; # ADJACENT_NETWORK\n\n# Get the base score\nsay $cvss-\u003ebase_score; # 7.4\n\n# Get all scores\nsay Dumper($cvss-\u003escores);\n\n# { \"base\"           =\u003e \"7.4\",\n#   \"exploitability\" =\u003e \"1.6\",\n#   \"impact\"         =\u003e \"5.9\" }\n\n# Get the base severity\nsay $cvss-\u003ebase_severity # HIGH\n\n# Convert CVSS in XML in according of CVSS XML Schema Definition\n$xml = $cvss-\u003eto_xml;\n\n# Convert CVSS in JSON in according of CVSS JSON Schema\n$json = encode_json($cvss);\n\n\n# exported functions\n\nuse CVSS qw(decode_cvss encode_cvss)\n\n$cvss = decode_cvss('CVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H');\nsay $cvss-\u003ebase_score;  # 7.4\n\n$vector_string = encode_cvss(version =\u003e '3.1', metrics =\u003e {...});\nsay $cvss_string; # CVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H\n```\n\n\n## cvss command-line-interface\n\nGet the base score:\n\n```console\n$ cvss CVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H --base-score\n7.4\n```\n\nGet the base severity:\n\n```console\n$ cvss CVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H --base-severity\nHIGH\n```\n\nParses the provided vector string and returns the JSON representation:\n\n```console\n$ cvss CVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H --json | jq\n{\n  \"attackComplexity\": \"LOW\",\n  \"attackVector\": \"ADJACENT_NETWORK\",\n  \"availabilityImpact\": \"HIGH\",\n  \"baseScore\": 7.4,\n  \"baseSeverity\": \"HIGH\",\n  \"confidentialityImpact\": \"HIGH\",\n  \"integrityImpact\": \"HIGH\",\n  \"privilegesRequired\": \"LOW\",\n  \"scope\": \"UNCHANGED\",\n  \"userInteraction\": \"REQUIRED\",\n  \"vectorString\": \"CVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H\",\n  \"version\": \"3.1\"\n}\n```\n\nParses the provided vector string and returns the XML representation:\n\n```console\n$ cvss CVSS:3.1/AV:A/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H --xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003ccvssv3.1 xmlns=\"https://www.first.org/cvss/cvss-v3.1.xsd\"\n  xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"https://www.first.org/cvss/cvss-v3.1.xsd https://www.first.org/cvss/cvss-v3.1.xsd\"\n  \u003e\n\n  \u003cbase_metrics\u003e\n    \u003cattack-vector\u003eADJACENT_NETWORK\u003c/attack-vector\u003e\n    \u003cattack-complexity\u003eLOW\u003c/attack-complexity\u003e\n    \u003cprivileges-required\u003eLOW\u003c/privileges-required\u003e\n    \u003cuser-interaction\u003eREQUIRED\u003c/user-interaction\u003e\n    \u003cscope\u003eUNCHANGED\u003c/scope\u003e\n    \u003cconfidentiality-impact\u003eHIGH\u003c/confidentiality-impact\u003e\n    \u003cintegrity-impact\u003eHIGH\u003c/integrity-impact\u003e\n    \u003cavailability-impact\u003eHIGH\u003c/availability-impact\u003e\n    \u003cbase-score\u003e7.4\u003c/base-score\u003e\n    \u003cbase-severity\u003eHIGH\u003c/base-severity\u003e\n  \u003c/base_metrics\u003e\n\n\u003c/cvssv3.1\u003e\n```\n\n\n## Install\n\nUsing Makefile.PL:\n\nTo install `CVSS` distribution, run the following commands.\n\n    perl Makefile.PL\n    make\n    make test\n    make install\n\nUsing `App::cpanminus`:\n\n    cpanm CVSS\n\n\n## Documentation\n\n- `perldoc CVSS`\n- https://metacpan.org/release/CVSS\n- [FIRST] CVSS Data Representations (https://www.first.org/cvss/data-representations)\n- [FIRST] CVSS v4.0 Specification (https://www.first.org/cvss/v4.0/specification-document)\n- [FIRST] CVSS v3.1 Specification (https://www.first.org/cvss/v3.1/specification-document)\n- [FIRST] CVSS v3.0 Specification (https://www.first.org/cvss/v3.0/specification-document)\n- [FIRST] CVSS v2.0 Complete Guide (https://www.first.org/cvss/v2/guide)\n\n## Copyright\n\n- Copyright 2007-2024 © FIRST.org - Forum of Incident Response and Security Teams, Inc.\n- Copyright 2023-2024 © Giuseppe Di Terlizzi\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiterlizzi%2Fperl-cvss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiterlizzi%2Fperl-cvss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiterlizzi%2Fperl-cvss/lists"}