“NULL” vanity plate hack to dodge parking tickets backfires to the tune of $12,000

Graham Cluley
@gcluley

"NULL" vanity plate hack to dodge parking tickets fails to the tune of $12,000

A US security researcher called Droogie thought he’d come up with the perfect wheeze to avoid being fined by the Department of Motor Vehicles (DMV) – he bought a personalised license plate which we believed would mess with the DMV’s database.

The name on Droogie’s vanity plate? “NULL”

The hacker’s hope was that using “NULL”, the marker to signify data that doesn’t exist in an SQL database, he’d avoid receiving any tickets.

EmailSign up to our newsletter
Security news, advice, and tips.

Telling the story at DEF CON in Las Vegas, Droogie remembered that he thought he had duped the system and was flipping the bird at the authorities:

“I was like, ‘I’m the shit,” he joked. “I’m gonna be invisible. Instead, I got all the tickets.”

Ars Technica explains what happened:

First, Droogie got a parking ticket, incurred for an actual parking infraction—so much for being invisible. Then, once a particular database of outstanding tickets had associated the license plate NULL with his address, it sent him every other ticket that lacked a real plate. The total came to $12,049 worth of tickets. Droogie told the DEF CON audience that he received little sympathy from either the California DMV or the Los Angeles Police Department, both telling him to just change his plate to something else. That remains something he refuses to do.

Although the initial $12,000-worth of fines were removed, the private company that administers the database didn’t fix the issue and new NULL tickets are still showing up.

With neither the database administrators or Droogie (I wonder if his real name is Bobby Tables?) prepared to budge, my guess is he’s going to carry on receiving parking tickets intended for other car owners for some time to come…

Found this article interesting? Follow Graham Cluley on Twitter or Mastodon to read more of the exclusive content we post.


Graham Cluley is a veteran of the anti-virus industry having worked for a number of security companies since the early 1990s when he wrote the first ever version of Dr Solomon's Anti-Virus Toolkit for Windows. Now an independent security analyst, he regularly makes media appearances and is an international public speaker on the topic of computer security, hackers, and online privacy. Follow him on Twitter at @gcluley, on Mastodon at @[email protected], or drop him an email.

10 comments on ““NULL” vanity plate hack to dodge parking tickets backfires to the tune of $12,000”

  1. Ben

    Surely now he can get as many tickets as he wants and just deny all knowledge of them!

  2. Techno

    It seems strange to me, because the licence plate word "NULL" would be stored as a string, whereas the database would just have null in that column to indicate no value.

    In programming terms "NULL" != NULL.

    If the story is true then the SQL writers are definitely at fault here.

    1. Techno · in reply to Techno

      To clarify comment above:

      – Where licence plate is NULL, the word would be stored as a string "NULL".

      – Where the licence plate is unknown the column would have NULL to indicate no value.

      1. martin · in reply to Techno

        As an ex-Oracle database programmer, I was going to comment the exact same thing. It just doesn't make sense.

      2. matt · in reply to Techno

        A little late to the conversation, but feel compelled to comment that I believe we are giving the programmers of the application too much credit. Those of us experienced with database programming see the obvious time-saving advantage of leveraging the database to perform the necessary conditions. However, this is likely not the case in this application as described by the article – the query they are using is likely a simple timeframe condition containing all plates in a given period.

        The NULL check is likely at a higher programatic level rather than a database level which is obfuscating the string to NULL comparison.

        So they likely have a " != " condition instead of a " !== " condition somewhere outside of the database layer… or worse…

  3. Dave

    Good point Techno :-)

  4. Terry Stern
    1. John90 · in reply to Terry Stern

      No, I think it is genuine. Many custom scripts for data exchange, data conversion and bulk loading from one system to another can drop quotes from strings, and they incorrectly specify test for NULL which might match NULL with or without quotes. It is "a private company that administers a database of outstanding tickets". Admins should be looking first at the import procedure for that external database of outstanding tickets.

  5. PhB

    Two words – Input Validation

  6. LGJ

    Mmm… I won't comment on the technical issue(s) as described above. Just want to point out this:

    "Droogie told the DEF CON audience that he received little sympathy from either the California DMV or the Los Angeles Police Department, both telling him to just change his plate to something else. That remains something he refuses to do."

    I guess there's a reason why they call them "Vanity Plates"… ;-)

What do you think? Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.