-
-
Notifications
You must be signed in to change notification settings - Fork 158
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
Sensitive Information Disclosure #140
Comments
More details
While the following are all very true, I am not sure they correspond to OWASP’s definition of a vulnerability; “A vulnerability is a hole or a weakness in the application, which can be a design flaw or an implementation bug, that allows an attacker to cause harm to the stakeholders of an application”:
Examples of Vulnerability
This seems like a Training Data Poisoning problem.
In this case, the example itself refers to the root cause, Insecure Output Handling (Possibly Overreliance).
Example Attack Scenarios This example appears to be caused by excessive agency where user A was allowed to see user B’s data because of Excessive Permissions being set, as per the description of Excessive Agency.
This example could be Training Data Poisoning if the PII is in the model itself or Excessive agency if the LLM as access to data in other systems, due to permission issues, and finally, it could represent Insecure Plugin Design if the problem is in the plugin’s security architecture. In this case, I’d argue that Prompt Injection is the attack vector, not the vulnerability.
This example is more correctly classified as Training Data Poisoning.
|
I particularly agree and understand cryptography plays a big part in this type of vulnerability. |
I guess my summary is: Looking at it from a defense in depth perspective, Insecure Output Handling is distinct as a system design vulnerability. It should be in place whether or not the LLM is completely deterministic - this is just good system design. Overreliance and Sensitive Information Disclosure fundamentally both stem from the unpredictable nature of LLM outputs. The distinction seems to be in the type of impact:
So they share the same root cause of unpredictable outputs, but manifest in different threat categories. Overreliance has a broader scope of impact, whereas Sensitive Information Disclosure is confined to confidentiality violations from sensitive data exposure. I feel we should consolidate them into a single vulnerability. The unpredictability of outputs could be called out as the underlying risk factor, with Overreliance covering the breadth of impact and Sensitive Information Disclosure being a subset focused on confidentiality. This relates to the thinking @virtualsteve-star is considering about the name of Overreliance ... summarized here: https://owasp.slack.com/archives/C05EXP0LF8T/p1693904406885479 |
I personally think Overreliance more scoped towards "as a consumer of an LLM, you should be aware of how it works at a certain level to understand why you shouldn't input source code".. Sensitive Information Disclosure is a potential outcome from Overeliance, as well as other vulnerabilities such as Training Data Poisoning, Prompt Injection etc.. I understand your reasoning for the suggestion, but how would you fit the fact that Sensitive Information Disclosure can occur from indirect or direct Prompt Injection (lack of input sanitization, scrubbing etc).. but does is not related to Overeliance? (let's call it this for now). |
I guess I have to go back to defining our mission statement. If we are to define technical vulnerabilities in software systems than I would say that overreliance and sensitive information disclosure are not technical vulnerabilities. As a developer, I can't overreliace - that is a people, process, training issue not a technical issue. I can't actually fix sensitive information disclosure, but I can fix prompt injections and insecure output, handling, etc. I took as impetus the change that the top 10 made away from sensitive information disclosure to cryptographic failure… From something I can't fix to something I can. So if our mission statement aligns with the flagship top 10 then we would concentrate on technical failures. The only out that I see is to salvage over reliance and focus it on inadequate training, and that kind of thing, but I still am having trouble seeing a home for sensitive information disclosure. |
Hey Bob!
You could argue and say that you also cannot fix "Overreliance" or "Supply Chain" as examples too though? I guess if so, this is a wider contextual decision to specify or separate Risks vs Vulnerabilities as part of our Top 10? Since we have multiple floaters within entries? As per v1.1 Instructions for the Expert Group so to confirm, if we progress with this issue, then this is a |
Agree. It is a v2 issue as per instructions, totally aligned. I just hope we make v1.1 as good as we can without making too big a shift from current state. After some feedback comes in, we may find I am totally wrong too. |
Sounds good, let's leave this open (I created and applied a |
I second this - framing sensitive data leaks as overreliance means that one is already assuming the model won't repeat entries from its training/retrieval data, which isn't a universal expectation (e.g. RAG biases towards exactly this behaviour).
Agree. OTOH I don't think there's firm knowledge on what the root cause of sensitive data leakage is, other than that the sensitive data was in (or implied by) the training data, where it perhaps shouldn't have been. I guess accidental output of text that happens to express a correct assertion isn't covered by this - maybe that's something for the differential security folks. |
In summary, this “vulnerability” is problematic because it mostly doesn’t represent a root cause, but a result or symptom. In the 2021 OWASP Top 10, they reoriented from symptoms to root causes. They actually renamed sensitive information exposure to cryptographic failure to focus on root causes.
There is, however, one aspect of this vulnerability that seems to be a true root cause. Regardless of the input it gets, large language model outputs are unpredictable. That unpredictability doesn’t necessarily come from training data poisoning, third-party data sources, or prompt injection. It comes from the stochastic nature and natural language processing capabilities of the large language model as well as ambiguities and inaccuracies inherent in natural language. I would argue that this aspect is a key point mentioned in this section that should be carried forward, however, I believe it makes more sense in Overreliance.
The text was updated successfully, but these errors were encountered: