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.

  • @ravhall
    link
    English
    116 days ago

    In 2024, I thought this was pretty much impossible. I guess that software is ancient.

    • @Telorand@reddthat.com
      link
      fedilink
      English
      5
      edit-2
      16 days ago

      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

    • Trailblazing Braille Taser
      link
      fedilink
      English
      116 days ago

      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
        link
        English
        115 days ago

        😭 prepare your queries!!!

        • Trailblazing Braille Taser
          link
          fedilink
          English
          315 days ago

          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-static str. I wonder why.