I think the concept you are looking for is "Hazard" not "Vulnerability".
Vulnerabilities are Hazards, but Hazards encompass far more than Vulnerabilities.
Let's take a look at this situation in context:
- the photo system successfully performed its function to create the file with the required metadata.
- There is no error, no misuse or abuse, or security issue at this point.
- The user copied the file to the web application.
- There is no error, no misuse or abuse, or security issue at this point.
- The web application processes the file and the metadata securely.
- There is no error, no misuse or abuse, or security issue at this point.
The potential issue in this situation is that the metadata could contain sensitive info that, if accessed legitimately by an authorised user of the web application, could result in harm to the user who used the photo system in step 1.
At no point has anything "gone wrong". Everything has operated in a safe state. Yet, despite all these systems and processes operating in a safe state, the conditions for a Hazard have emerged. So, there is no "Vulnerability", but a "Hazard".
Why did it emerge?
- The metadata placed on the file is not obvious to the user
- The user can upload the file without notice about the potential hazard
- The web application does not provide notice of the metadata or proactively remove it
None of this is a vulnerability. Nothing has "gone wrong". There is an inherent weakness in the nature of the metadata. So, from a Human Factors perspective, the Pre-condition for the Hazard is that the potentially sensitive metadata is not made obvious to the user at any point. So, that's a weakness of the file and its metadata, and not of the systems that process it or a weakness of the user.
So, who is responsible for mitigating that Hazard?
Potentially, no one. Yes, some web applications proactively remove the metadata, but for some web applications, this could not necessarily be because the web application wants to reduce Hazards, but could simply be a side-effect of the web app reconstructing the photo for efficiency. So, we have to be careful when making inferences about what other web apps do/don't do.
"But somebody should do something!"
Not necessarily. There is no inherent responsibility from anyone at any point since there is no vulnerability in any system. The web app could be "nice" and provide visibility of the metadata or proactively strip it, but it is certainly not their responsibility.
There is only so far that technologists can save people from inherent Hazards. And because some web applications are designed to require metadata, there can't be a universal design approach that removes it. This leaves us with the potential of systems that expose the conditions for potential Hazards that don't necessarily need to be fixed.
A Supporting Example
Imagine a web app that allows people to make their own user name. There is no vulnerability in this design decision. Now imagine that a user decides to use their phone number as a username. Is there a vulnerability? No. The inherent Hazard of allowing people to create their own username can result in the Pre-Condition of people using sensitive information that could be used against them. In this case, the user is proactively exposing sensitive data, and that's on them. But how far removed is that situation from a user uploading a file with metadata that they were not aware of? Again, the weakness here is that the metadata is not obvious, which creates a Pre-Condition for Hazard. But there is no "vulnerability".