Anyone with basic knowledge of SQL injection could login to this site and add anyone they wanted to KCM and CASS, allowing themselves to both skip security screening and then access the cockpits of commercial airliners.
SQL Injection Attack on Airport Security
https://www.schneier.com/blog/archives/2024/09/sql-injection-attack-on-airport-security.html
16 Comments
polaris64@lemmy.sdf.org · 17 pts · 2y
I think the owner of FlyCASS was sufficiently alarmed!
0x0@lemmy.dbzer0.com · 11 pts · 2y
Why not post the primary source? https://ian.sh/tsa
0x0@programming.dev · 2 pts · 2y
Posted the source i found it through.
0x0@lemmy.dbzer0.com · 4 pts · 2y
Understandable. I'm more confused why Bruce ripped off the original blog post.
Cool username, btw
0x0@programming.dev · 1 pts · 2y
He does that a lot, although he tends to be more verbose on the topic when he does. Then again, there's not much to this story (the details, not the implications).
cron@feddit.org · 6 pts · 2y
How many vulnerabilities can there be in such a safety-critical application?
0x0@programming.dev · 8 pts · 2y
No for-profit will bother with security unless forced to, as it's seen as an expense and shareholders don't like that.
Edit: also:
Emphasis mine.
cron@feddit.org · 6 pts · 2y
Oh, the old "this is so obscure, nobody will find this out"-excuse
jonne@infosec.pub · 4 pts · 2y
Just amazing.
ravhall@discuss.online · 2 pts · 2y
In 2024, I thought this was pretty much impossible. I guess that software is ancient.
Telorand@reddthat.com · 5 pts · 2y
Bruh, it's 2024, and banks still don't have app-based or hardware-based TOTP.
I get that upgrading can be hard, but when you're safeguarding people's lives or money (and also PII), I don't understand how it's not a legal mandate that you have to meet certain basic security thresholds.
Edit: typo
taladar@sh.itjust.works · 1 pts · 2y
I assume you meant PII?
Telorand@reddthat.com · 1 pts · 2y
Yes. I should really quit commenting before coffee
0x0@lemmy.dbzer0.com · 1 pts · 2y
The beautiful thing about string injection vulnerabilities is that they will never ever stop happening. It's just too easy to sprintf untrusted input.
ravhall@discuss.online · 2 pts · 2y
😭 prepare your queries!!!!
0x0@lemmy.dbzer0.com · 3 pts · 2y
You know, the reason this happens is that you can ask your database to execute a string type, but languages usually don't distinguish between a static string and a dynamically constructed string.
Not to proselytize, but this is a place where rust's lifetime annotations can shine. The DB interface should take a
&'static str( and a variable number of parameters to insert) so it can be certain that no untrusted user input has already been injected into the query string. Assuming all static data is trusted, the sql injection vulnerabilities just went poof.Sadly, it looks like rusqlite's
execute()takes a non-staticstr. I wonder why.