Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VCIO-next: Missing Summary values #859

Open
tdruez opened this issue Aug 23, 2022 · 3 comments
Open

VCIO-next: Missing Summary values #859

tdruez opened this issue Aug 23, 2022 · 3 comments

Comments

@tdruez
Copy link
Contributor

tdruez commented Aug 23, 2022

For example getting vulnerabilities using this query by cpe: /api/cpes/?cpe=cpe:2.3:a:wireshark:wireshark:3.6.0:*:*:*:*:*:*:*

Results:

 {
            "url": "http://public.vulnerablecode.io/api/vulnerabilities/2680",
            "vulnerability_id": "VULCOID-22G",
            "summary": "",
            "aliases": [
                {
                    "alias": "CVE-2021-4181"
                }
            ],

The summary is empty, but when looking at the CVE-2021-4181 reference URL there's a summary available: https://nvd.nist.gov/vuln/detail/CVE-2021-4181

@pombredanne
Copy link
Member

Merging dupe #1684

Missing summary in https://public.vulnerablecode.io/vulnerabilities/VCID-jaz4-2j4u-aaas

And: #1684 (comment)

there are lots of missing summaries in the VCIO data. If there should always be one, I think we probably need to do a mass data cleanup.

@pombredanne pombredanne added 3-next and removed 9-next labels Dec 16, 2024
@pombredanne
Copy link
Member

As discussed in today's call this could be a new improver that selects filtered vulnerabilities without a summary and with a CVE alias and use the data from the NVD for the summary.

This would be a good start

@pombredanne
Copy link
Member

Merging #1340 as a dupe of this issue:

from @johnmhoran initial comments

I noticed recently when working with a range of PURLs and vulnerabilities that:

* the content of the VCIO UI `summary` field (afaict this applies equally to the API responses) does not always come from the same source,

* the source is sometimes impossible to identify (for me at least), and

* the `summary` field value is limited to just one source (even if it varies and might be unknown) and thus omits descriptions from other vulnerability advisories (e.g., nvd.nist.gov but not ghsa or vice-versa).

In the best of all possible worlds, a consumer of vulnerability information might prefer to have access to the vulnerability description from all major advisory providers (however defined). Among the challenges of doing so is the fact that some advisories, for example many ghsa advisories, contain Description fields that have multiple headings and sometimes sub-headings and reference lists, adding to the complexity of identifying and securing the sought-after content.

I'll provide a few examples below.

and #1340 (comment)

From the public UI. Summary values might not reflect carriage returns in the DB.

Example:

VCID-121u-fy4e-aaah

Summary:

Polymorphic typing issue

Source: unknown

nist.nvd.gov 'Description' field (https://nvd.nist.gov/vuln/detail/CVE-2019-17531):

A Polymorphic Typing issue was discovered in FasterXML jackson-databind 2.0.0 through 2.9.10. When Default Typing is enabled (either globally or for a specific property) for an externally exposed JSON endpoint and the service has the apache-log4j-extra (version 1.2.x) jar in the classpath, and an attacker can provide a JNDI service to access, it is possible to make the service execute a malicious payload.

ghsa 'Description' field (GHSA-gjmw-vf9h-g25v):

A Polymorphic Typing issue was discovered in FasterXML jackson-databind 2.0.0 prior to 2.9.10.1, 2.8.11.5, and 2.6.7.3. When Default Typing is enabled (either globally or for a specific property) for an externally exposed JSON endpoint and the service has the apache-log4j-extra (version 1.2.x) jar in the classpath, and an attacker can provide a JNDI service to access, it is possible to make the service execute a malicious payload.

and #1340 (comment)

Example:

VCID-pu9y-1t3k-aaag

Summary:

Use of Java's default temporary directory for file creation in FileBackedOutputStream in Google Guava versions 1.0 to 31.1 on Unix systems and Android Ice Cream Sandwich allows other users and apps on the machine with access to the default Java temporary directory to be able to access the files created by the class. Even though the security vulnerability is fixed in version 32.0.0, we recommend using version 32.0.1 as version 32.0.0 breaks some functionality under Windows.

Source: looks like nvd.nist.gov (see below)

nist.nvd.gov 'Description' field (https://nvd.nist.gov/vuln/detail/CVE-2023-2976):

Use of Java's default temporary directory for file creation in FileBackedOutputStream in Google Guava versions 1.0 to 31.1 on Unix systems and Android Ice Cream Sandwich allows other users and apps on the machine with access to the default Java temporary directory to be able to access the files created by the class. Even though the security vulnerability is fixed in version 32.0.0, we recommend using version 32.0.1 as version 32.0.0 breaks some functionality under Windows.

ghsa 'Description' field (GHSA-7g45-4rm6-3mm3):

Use of Java's default temporary directory for file creation in FileBackedOutputStream in Google Guava versions 1.0 to 31.1 on Unix systems and Android Ice Cream Sandwich allows other users and apps on the machine with access to the default Java temporary directory to be able to access the files created by the class.

Even though the security vulnerability is fixed in version 32.0.0, maintainers recommend using version 32.0.1 as version 32.0.0 breaks some functionality under Windows.

#1340 (comment)

Example:

VCID-arnu-neah-aaas

Summary:

OS Command Injection Growl does not properly sanitize input before passing it to exec, allowing for arbitrary command execution.

Source: unclear

nist.nvd.gov 'Description' field (https://nvd.nist.gov/vuln/detail/CVE-2017-16042):

Growl adds growl notification support to nodejs. Growl before 1.10.2 does not properly sanitize input before passing it to exec, allowing for arbitrary command execution.

ghsa 'Description' field (GHSA-qh2h-chj9-jffq):

Affected versions of growl do not properly sanitize input prior to passing it into a shell command, allowing for arbitrary command execution.

#1340 (comment)

Example:

VCID-uwmq-1z6g-aaap

Summary:

NATS nats-server before 2.9.23 and 2.10.x before 2.10.2 has an authentication bypass. An implicit $G user in an authorization block can sometimes be used for unauthenticated access, even when the intention of the configuration was for each user to have an account. The earliest affected version is 2.2.0.

Source: nvd.nist (see below)

nist.nvd.gov 'Description' field (https://nvd.nist.gov/vuln/detail/CVE-2023-47090):

NATS nats-server before 2.9.23 and 2.10.x before 2.10.2 has an authentication bypass. An implicit $G user in an authorization block can sometimes be used for unauthenticated access, even when the intention of the configuration was for each user to have an account. The earliest affected version is 2.2.0.

ghsa 'Description' field (GHSA-fr2g-9hjm-wr23):

Background

NATS.io is a high performance open source pub-sub distributed communication technology, built for the cloud, on-premise, IoT, and edge computing.

NATS users exist within accounts, and once using accounts, the old authorization block is not applicable.

Problem Description

Without any authorization rules in the nats-server, users can connect without authentication.

Before nats-server 2.2.0, all authentication and authorization rules for a nats-server lived in an "authorization" block, defining users. With nats-server 2.2.0 all users live inside accounts. When using the authorization block, whose syntax predates this, those users will be placed into the implicit global account, "$G". Users inside accounts go into the newer "accounts" block.

If an "accounts" block is defined, in simple deployment scenarios this is often used only to enable client access to the system account. When the only account added is the system account "$SYS", the nats-server would create an implicit user in "$G" and set it as the no_auth_user account, enabling the same "without authentication" logic as without any rules.

This preserved the ability to connect simply, and then add one authenticated login for system access.

But with an "authorization" block, this is wrong. Users exist in the global account, with login rules. And in simple testing, they might still connect fine without administrators seeing that authentication has been disabled.

The blind-spot on our part came from encouraging and documenting a switch to using only "accounts", instead of "authorization".

In the fixed versions, using an "authorization" block will inhibit the implicit creation of a "$G" user and setting it as the no_auth_user target. In unfixed versions, just creating a second account, with no users, will also inhibit this behavior.

and #1340 (comment)

At a minimum VulnerableCode needs to record the origin of the Summary text and the date the Summary text was posted. Longer-term we may need to consider rules for picking the best text for the Summary based on the source. Even longer-term this might be an area to experiment with machine learning to construct a Summary from multiple texts - this might need to be a recurring Improver process to incorporate new data after the initial posting of a VCID.

and @DennisClark : #1340 (comment)

Clarification of action to be taken:
At a minimum VulnerableCode needs to record an accurate source and the date the Summary text was posted.

and : #1340 (comment)

Note: given correct severities, CVEs, etc. the summary is nice but not necessarily essential/urgent.
From another perspective: consider the real purpose and value of the summary in the first place.
Maybe ask a GPT/LLM to summarize a group of summary texts (specifying a maximum size)?

@pombredanne pombredanne added this to the v37.0.0 - 4-next milestone Dec 26, 2024
@pombredanne pombredanne changed the title Missing Summary values VCIO-next: Missing Summary values Dec 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

4 participants