cracauer@
Developer
They shouldn't. It never claimed to be safe against untrusted data.
Well, what do you do if you run a software as a service and the queries from customers are XML?
They shouldn't. It never claimed to be safe against untrusted data.
You use an XML library that does claim to be safe against untrusted data.Well, what do you do if you run a software as a service and the queries from customers are XML?
Knowing a little bit about how Google operates (see footnote), I'm sure that there are somewhere between a dozen and a hundred people inside Google already at work fixing it. Given that this has been known for over 12 hours, most likely the Google-internal version of libxml2 is already patched and safe, or the problem has been worked around in some other way, and rollout to all the millions of Google hosts is in progress. I have no idea how the problem is getting fixed, nor whether or when such a fix will become public, nor whether Google's internal fix would even be useful for the world at large.He should have contacted Google's zero-day team. They would have helped him.
The hyperscalers can afford it. The open-source community is another thing. Fixes must be tested before they're released.Knowing a little bit about how Google operates (see footnote), I'm sure that there are somewhere between a dozen and a hundred people inside Google already at work fixing it. Given that this has been known for over 12 hours, most likely the Google-internal version of libxml2 is already patched and safe, or the problem has been worked around in some other way, and rollout to all the millions of Google hosts is in progress. I have no idea how the problem is getting fixed, nor whether or when such a fix will become public, nor whether Google's internal fix would even be useful for the world at large.
If this CVE is really important or relevant (which I don't know and can't evaluate), the open source community should fix it quickly. It is technically capable of doing that. If it isn't organizationally capable of it, that tells you something really important about the state of the world.
Footnote: I was a Google employee for quite a few years (insiders will know what the following means: I was "root in cloud"), but I am not now, and I have no internal news from them at all.
I'm sure Google and other hyperscalers run on code that has been tested.Fixes must be tested before they're released.
But they don't need to release it to customers, unlike Linux distros.I'm sure Google and other hyperscalers run on code that has been tested.
LIB_DEPENDS
and RUN_DEPENDS
to specify it is used for generic usage (default) or only for internal-for-the-port data.LIB_DEPENDS= libxml2>0:textproc/libxml2:internal
and some mechanism to validate that :internal
is specified or not and forcibly set IGNORE
or BROKEN
if :internal
is NOT set. Not sure it's possible or not.it is very little mass.Okay, I hit that piece of bullshit-bingo for the second time now. A software cannot have a "bill of material" simply because it is not material - so this one is even bullshit in it self!
Disinformation. Upstream followed guidelines to inform about a vulnerability that cannot be fixed in time.The upstream maintainer of the port we know as textproc/libxml2 has carried out his threat to release vulnerability information into the wild
Wrong. Before making the vulnerability public it might have been a zero-day. A zero-day vulnerability is per definition not known to the public. Now it is known.Thus he has created zero-day opportunities
Exaggeration on purpose.Given the number of applications depending on his library, has he just endangered the entire Internet infrastructure?
None.If his action will enable malicious foreign governments and terrorists to attack states or other targets, how many countries' security laws is he likely to have violated?
No, thats the wrong place. The dependencies are complex enough already. Also, you probably don't have a precise definition of what exactly would be "internal" - there are most often some corner cases.But if it is used just for storing configuration of specific apps only that are allowed to be reconfigured via its menus, unlikely to matter, as the data SHALL be validated by the app BEFORE storing and reading by the app itself. There SHALL NOT be invalidated data (if not, it's the fatal bug of the app).
So simply deleting libxml2 from ports is too stupid.
We should have mechanism onLIB_DEPENDS
andRUN_DEPENDS
to specify it is used for generic usage (default) or only for internal-for-the-port data.
Something likeLIB_DEPENDS= libxml2>0:textproc/libxml2:internal
and some mechanism to validate that:internal
is specified or not and forcibly setIGNORE
orBROKEN
if:internal
is NOT set. Not sure it's possible or not.
Y'know, you seriously gotta consider the audience of the post. And that means, consider how you phrase things.What I was writing about is the disclosure of information which could be useful to a terrorist, enemy state, or criminal gang by informing them of an attack surface against services hosted on machines using the software, which seems to be a dependency of mail and http servers (eg Apache) of many types, and is apparently even used by some professional programs, according to the maintainer. Indeed, part of his complaint is that people are making money out of his work but expecting him to maintain it without any help from them, and he's understandably fed up about that. The problem is not that he hasn't fixed it, but that, by disclosing it so openly, he has alerted threat actors to the opportunity they might otherwise have taken longer to discover and therefore he could be deemed by a law-enforcement service to have acted to assist criminals, terrorists, or enemy powers in attacking a country's Internet-carried infrastructure, including law-enforcement, defence, power grids etc. It doesn't even matter how quickly such people could have found out by other means - the mere fact he has made it easier for them would probably be enough to get him arrested. Nor does it matter that governments are foolish to use the public Internet as a vehicle to carry vital services in the first place rather than investing in their own separate systems. The fact is they do.
Try telling a random joe on the street, "This is how to break into computers". What do you think the reaction of that random joe is?Can people really not see the difference between saying "I don't want to fix this anymore. If you want it fixed do it yourself" and telling the world "This is how you could use it to break into computers"?
I'm seeing terms like "Process un-trusted data" thrown around in this thread... And... exactly wha does that even mean?
More likely it means data obtained from external resources isn't validated against the most basic constraints, such as attributes or text nodes containing xml escape codes that could allow an attacker to inject code that could e.g. cause a webbrowser to download attacker-provided javascript and execute it.You can run a checksum hash on data files similar to software/software packages. This is still new to me and as far as I know ML/DL in the AI space goes. We are moving in that direction as far as I know
Yep. And even then, validation of input data is highly dependent on the context. textproc/libxml2 can be considered a validator of XML data, but there's no such thing as a perfect validator (or a perfectly secure validator).Checksums do not validate input. They validate whether it was transmitted correctly, but that won't stop a mallicious content provider from providing purposefully crafted code in order to capture client resources.
When you access a page from the internet in a web browser, you are effectively loading loads of untrusted data (especially if someone doesn't have an ad-block!). For example:I'm seeing terms like "Process un-trusted data" thrown around in this thread... And... exactly wha does that even mean?
Sigh... not exactly, the parser is just being used as an example of how one really needs to understand how the program even works, what the limitations are, and how issues are to be addressed, what's the appropriate thing to do.oooo so this this is an XML parser we are talking about here