Security advisory: Insufficient data validation in yubikey-val
yubico.com
yubico.com
Not that it's not important, but I assume this story's placement on the front page is a consequence of people thinking this impacts Yubikeys themselves through U2F (the way most people use keys) or SSH/PGP (the way most of the rest of people do).
Here's the commit that fixes the bug:
https://github.com/Yubico/yubikey-val/pull/59/commits/d0e4db...
It's... not great; it looks like they were accepting SQL metacharacters in hand-rolled non-parameterized SQL queries.
If you were running this project: (1) you should fix right away and presumably disregard the summary at the top of the advisory that this vulnerability would just allow DoS, and (2) once you do, tell the rest of us why you were running this thing; I'm sure we'd be interested in hearing your use case.
Is it actively used?
And even then, the PHP documentation was ALWAYS telling people "PLEASE FOR THE LOVE OF EVERYTHING THAT IS HOLY MOVE TO PDO AND STOP USING NON-PARAMETRISED APIs"
But the problem is that with PHP, a LOT of the problems are usually resolved by programmers using the age old "copy pasta from a stackoverflow thread that's 10 years old".
However, I do concede that for someone who's in a security context, it is absolutely narrow minded to allow ANYTHING beyond parametrized queries.
It’s not using the sync service and the server is ip locked via iptables.
Thanks for the info.
At the time (ten years ago!) there was concern about trusting cloud providers, so we had pressure to implement it on-prem. Additionally the cloud offering at the time only validated the OTP, but all user to token tracking was left up to the individual system, so we ended up customizing it quite heavily to allow us to automate token provisioning and track user to token mappings, and provide a RADIUS front end so we could tie in other systems.
We’re finally looking to retire it, but it’s had a good long life.
This brought clarity to the headline for me. Hope it helps others before clicking.
The first paragraph in “Technical details” mixes (1) and (3) confusingly, and should have had a paragraph break before the sentence beginning “Verify” (or been rewritten).
A quick glance at the patchset suggests this is right (the verification code looks to have been made stricter in the verify endpoint, but added in the sync endpoint), but I didn't dig deeper than that.
[edited slightly for wording]