{"id":31536649,"url":"https://github.com/0llirocks/cvss-suite","last_synced_at":"2025-10-04T07:47:04.398Z","repository":{"id":9760161,"uuid":"63239199","full_name":"0llirocks/cvss-suite","owner":"0llirocks","description":"CvssSuite - This Ruby gem helps you to process the vector of the Common Vulnerability Scoring System.","archived":false,"fork":false,"pushed_at":"2025-05-11T09:01:18.000Z","size":8099,"stargazers_count":25,"open_issues_count":2,"forks_count":15,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-23T19:25:56.153Z","etag":null,"topics":["cvss","ruby-gem","security"],"latest_commit_sha":null,"homepage":"https://cvss-suite.0lli.rocks","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0llirocks.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null}},"created_at":"2016-07-13T11:05:10.000Z","updated_at":"2025-05-11T09:01:00.000Z","dependencies_parsed_at":"2024-06-19T01:34:40.139Z","dependency_job_id":"f635bcb1-72f5-4aa6-a89b-caa614cc68aa","html_url":"https://github.com/0llirocks/cvss-suite","commit_stats":{"total_commits":144,"total_committers":10,"mean_commits":14.4,"dds":0.6111111111111112,"last_synced_commit":"48e844d11335688c65fcf94ec088533feeda383f"},"previous_names":["siemens/cvss-suite"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/0llirocks/cvss-suite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0llirocks%2Fcvss-suite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0llirocks%2Fcvss-suite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0llirocks%2Fcvss-suite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0llirocks%2Fcvss-suite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0llirocks","download_url":"https://codeload.github.com/0llirocks/cvss-suite/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0llirocks%2Fcvss-suite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278283493,"owners_count":25961310,"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","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","ruby-gem","security"],"created_at":"2025-10-04T07:47:00.245Z","updated_at":"2025-10-04T07:47:04.388Z","avatar_url":"https://github.com/0llirocks.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CvssSuite for Ruby\n\n[![Gem Version](http://img.shields.io/gem/v/cvss-suite.svg)](https://rubygems.org/gems/cvss-suite)\n[![Ruby Version](https://img.shields.io/badge/Ruby-2.6-brightgreen.svg)](https://rubygems.org/gems/cvss-suite)\n[![Cvss Support](https://img.shields.io/badge/CVSS-v2-brightgreen.svg)](https://www.first.org/cvss/v2/guide)\n[![Cvss Support](https://img.shields.io/badge/CVSS-v3.0-brightgreen.svg)](https://www.first.org/cvss/v3.0/user-guide)\n[![Cvss Support](https://img.shields.io/badge/CVSS-v3.1-brightgreen.svg)](https://www.first.org/cvss/v3.1/user-guide)\n[![Cvss Support](https://img.shields.io/badge/CVSS-v4.0-brightgreen.svg)](https://www.first.org/cvss/v4.0/user-guide)\n[![RSpec](https://github.com/0llirocks/cvss-suite/workflows/RSpec/badge.svg)](https://github.com/0llirocks/cvss-suite/actions)\n\nThis Ruby gem helps you to process the vector of the [**Common Vulnerability Scoring System**](https://www.first.org/cvss/specification-document).\nBesides calculating the Base, Temporal and Environmental Score, you are able to extract the selected option.\n\n\u003e [!IMPORTANT]\n\u003e This project could need some new maintainer(s). I am having less time and motivation to support this gem. Support for v4 was only possible with the help of the community and I am sure I will not implement any v4.x or v5.x support by myself. Since this gem is used in some projects I will not step down without any kind of support. If you are interested in CVSS and ruby, feel free to work on upcoming issues and let me ([@Ollirocks](https://github.com/0llirocks)) know if you are willing to become a maintainer. As of today there are only a very few issues each year but each new version of CVSS results in quite a lot of work. I am fine with staying the owner of this project until someone is willing to take over completely. I will not vanish from GitHub once and or all :smile: The same applies to the ruby gems account, I am willing to push new versions to rubygems.org until someone trustworthy is found to take over.\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'cvss-suite'\n```\n\nSince the naming of this gem is not following the naming convention you can also add the following line to automatically require the gem:\n\n```ruby\ngem 'cvss-suite', require: 'cvss_suite'\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install cvss-suite\n\n## Version 3.x\n\nIf you are still using CvssSuite 3.x please refer to the [specific branch](https://github.com/0llirocks/cvss-suite/tree/3.x) for documentation and changelog.\n\n## Version 2.x\n\nIf you are still using CvssSuite 2.x please refer to the [specific branch](https://github.com/0llirocks/cvss-suite/tree/2.x) for documentation and changelog.\n    \n## Version 1.x\n\nIf you are still using CvssSuite 1.x please refer to the [specific branch](https://github.com/0llirocks/cvss-suite/tree/1.x) for documentation and changelog.\n\n## Usage\n\n```ruby\nrequire 'cvss_suite'\n\ncvss4 = CvssSuite.new('CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N')\n\nvector = cvss4.vector       # 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'\nversion = cvss4.version     # 4.0\nvalid = cvss4.valid?        # true\nseverity = cvss4.severity   # 'Critical'\n\ncvss31 = CvssSuite.new('CVSS:3.1/AV:P/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:H/E:H/RL:U/RC:U')\n\nvector = cvss31.vector     # 'CVSS:3.1/AV:P/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:H/E:H/RL:U/RC:U'\nversion = cvss31.version   # 3.1\nvalid = cvss31.valid?      # true\nseverity = cvss31.severity # 'Medium'\n\ncvss3 = CvssSuite.new('CVSS:3.0/AV:L/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:L/CR:L/IR:M/AR:H/MAV:N/MAC:H/MPR:N/MUI:R/MS:U/MC:N/MI:L/MA:H')\n\nvector = cvss3.vector       # 'CVSS:3.0/AV:L/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:L/CR:L/IR:M/AR:H/MAV:N/MAC:H/MPR:N/MUI:R/MS:U/MC:N/MI:L/MA:H'\nversion = cvss3.version     # 3.0\nvalid = cvss3.valid?        # true\nseverity = cvss3.severity   # 'High'\n\ncvss = CvssSuite.new('AV:A/AC:M/Au:S/C:P/I:P/A:P/E:POC/RL:TF/RC:UC/CDP:L/TD:M/CR:M/IR:M/AR:M')\n\nvector = cvss.vector       # 'AV:A/AC:M/Au:S/C:P/I:P/A:P/E:POC/RL:TF/RC:UC/CDP:L/TD:M/CR:M/IR:M/AR:M'\nversion = cvss.version     # 2\nvalid = cvss.valid?        # true\nseverity = cvss.severity   # 'Low'\n\n# Scores\nscore = cvss4.overall_score                         # 9.3, cvss4 only has overall score\nbase_score = cvss.base_score                        # 4.9\ntemporal_score = cvss.temporal_score                # 3.6\nenvironmental_score = cvss.environmental_score      # 3.2\noverall_score = cvss.overall_score                  # 3.2\n\n# Available options\naccess_vector = cvss.base.access_vector.name                # 'Access Vector'\nremediation_level = cvss.temporal.remediation_level.name    # 'Remediation Level'\n\naccess_vector.values.each do |value|\n    value[:name]           # 'Local', 'Adjacent Network', 'Network'\n    value[:abbreviation]   # 'L', 'A', 'N'\n    value[:selected]       # false, true, false\nend\n\n# Selected options\ncvss.base.access_vector.selected_value[:name]          # Adjacent Network\ncvss.temporal.remediation_level.selected_value[:name]  # Temporary Fix\n\n# Exceptions\n\ncvss = CvssSuite.new('random_string')  # invalid vector\nvalid = cvss.valid?     # false\nversion = cvss.version  # will throw CvssSuite::Errors::InvalidVector: Vector is not valid!\ncvss.base_score         # will throw CvssSuite::Errors::InvalidVector: Vector is not valid!\n\ncvss = CvssSuite.new(1337)  # invalid vector\nvalid = cvss.valid?     # false\nversion = cvss.version  # will throw CvssSuite::Errors::InvalidVector: Vector is not valid!\ncvss.base_score         # will throw CvssSuite::Errors::InvalidVector: Vector is not valid!\n\nCvssSuite.new()         # will throw a ArgumentError\n\ncvss = CvssSuite.new('AV:N/AC:P/C:P/AV:U/RL:OF/RC:C')   # invalid vector, authentication is missing\nversion = cvss.version  # 2\nvalid = cvss.valid?     # false\ncvss.base_score         # will throw CvssSuite::Errors::InvalidVector: Vector is not valid!\n```\n\n## Known Issues\n\nThere is a possibility of implementations generating different scores (+/- 0,1) due to small floating-point inaccuracies. This can happen due to differences in floating point arithmetic between different languages and hardware platforms.\n\n## Changelog\n\n[Click here to see all changes.](https://github.com/0llirocks/cvss-suite/blob/master/CHANGES.md)\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/0llirocks/cvss-suite. This project is intended to be a safe, welcoming space for collaboration.\n\n## References\n[CvssSuite for .NET](https://cvsssuite.0lli.rocks)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0llirocks%2Fcvss-suite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0llirocks%2Fcvss-suite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0llirocks%2Fcvss-suite/lists"}