Posted
by
CmdrTaco
on Wednesday March 15, 2006 @10:04AM
from the alliteration-is-fun dept.

Arleo writes "Student Melanie Rieback and others, part of a Tannenbaum research group in Amsterdam, have proven that RFID-tags are vulnerable for infection with viruses. In a research paper titled
"Is Your Cat Infected with a Computer Virus?" is shown how an altered RFID tag can be used to send a SQL injection attack or a buffer overflow. They describe on the rfidvirus.org website possible exploits of this types of viruses: from altering the backoffice of a supermarket to spreading RFID viruses by infected bags on airports."

Fascinating stuff, but it seems that the game plan for protecting against RFID malware is basically the same as protecting against more traditional malware...namely, enforcing proper bounds checking, enforcing proper database permissions heirarchies, disabling back-end scripting languages, isolating the vulnerable RFID middleware server in a proper DMZ environment, etc.

In other words, RFID malware has just as bright a future as the more traditional flavor, since most developers and administrators can't be bothered to take these elementary precautions.

Not only this, but a single check on the length of the tag would be sufficient against this attack. So in well-designed software there would only be one place where to check for length. It's not like certain well-known operating systems, that have unguarded buffers in dozens of places. That seems to diminish the risk quite a lot. Not to mention that any organization that takes its security serious, will probably set up a warning system for malicious RFID tags, which will expose attackers quite quickly, since they're likely to be physically nearby.

Attacker buys RFID-tracked product at store.Attacker alters RFID-tracked product to allow for attack.Attacker returns the product to the store shelf and waits...Joe Sixpack checks out with infected product.Clerk scans product and infects store database.All prices for all products now set to $0.

Again, any decent software developer knows that you never trust outside input. You always check everything that comes in. Follow that simple rule and your software is secure from these kinds of attacks.

>which will expose attackers quite quickly, since they're likely to be physically nearby.

Good point. If I wanted to infect a system say at wallmart. I'd just place the infected RFID tag on a product on the shelf and wait for someone to buy it or inventory it. I'm long gone by the time the infection attempt takes place.

Not only this, but a single check on the length of the tag would be sufficient against this attack.

Not true. The article specifically mentions potential SQL injection attacks, which are not caught by a simple length check. Also, you are assuming that the tag contains nothing more complex than a single ID number. As the complexity of the data in the tag goes up, so does the complexity of the parsing code for that data. Take for example including a picture of the owner in the RFID tag inside of a passport. Now the outside data is being fed to a some type of image decompression software with all sorts of opportunities for vulnerable bugs. Not only is image data likely to be a component of lots of RFID data, image decompression routines have historically been fertile ground to exploitable code bugs.

None of which is to say that the problem isn't manageable, but just that it's a lot more involved than a single length check. In fact, it's that kind of thinking which leads to vulnerable bugs. "Hey, this 1KB of random data is the right length, it must be OK. No need to worry about bugs anywhere else in the system." Riiiight.

It does the injection via buffer overflow. In a secure environment, RFID tags can be supposed to hold only a limited amount of data, e.g. a 64 byte code number with some kind of verification. If the application stops reading after 64 bytes, you can put as much SQL on the tag as you can, but it won't get injected.

Don't misinterpret me: I think RFID is a bad idea, but blowing up airports using a buffer overflow on a malicious tag can easily be prevented.

False. I re-read the paper just to make sure I didn't miss anything. They have an example of a working atttack against an Oracle database. Their attack is 127 bytes long in a system with a 128 byte data field. Where is the buffer overflow?

but blowing up airports using a buffer overflow on a malicious tag can easily be prevented.

And as I said, that's a dangerous attitude. The problem goes beyond mere bounds checking on the buffer. And if you were actually in charge

Think about the shoplifting possibilities- Once RFID id used to monitor what is in your shopping cart, and you are automatically charged (because your credit card has RFID) as you walk out of the stores (No more checkout girl).
Write a little virus that defaults all your mechandise to 99cents an item, and you are good to go. This would of course only work with items worth more than 99cents, like steaks and electronics. Defaulting Bubblegum to 99cents would end up lamking you lose money.

I'll have too explain my dad to not to download whatever crap on internet, never reply yes when a crap want to install something without asking me first and now...I need to ask him to check the ServicePack version on his six-pack and explain him that bringing russian vodka home can wipe out his harddisk when he turns the TV on?

That's quite a lot of work though, not something I would call "simple", especially for overworked and underpaid IT workers. Normally I wouldn't be concerned because most times, RFID should only be a serial number, but if even image files can cause trouble, then I suppose anything can.

sql injection attack?How would you let something like that happen? There is a ton of code to prevent that all over create not to mention that I think every database on the planet has a quote function just to prevent that kind of thing.Buffer overflow? just what data entry method is not vulnerable to a buffer overflow if the programmer is careless?I would have been shocked if RFID was magically immune to programmer induced security breaches.

Student Melanie Rieback and others, part of a Tannenbaum research group in Amsterdam, have proven that RFID-tags are vulnerable for infection with viruses.

American oak tree research groups and Swedish aspen tree research groups have responded by working around the clock to fix this security hole. Never before have groups centered on deciduous trees been so involved in computer security.

I don't understand why we _have_ to use RFID at all. I understand it may make some things easier, but aren't we efficient enough? In these days where security is becoming more and more of an issue, why even creating another security issue when the old way still works. Is tracking something via a barcode scanning system really so inefficient that we need RFID? I don't understand, we seem to be pretty efficient in most industries already, why do we need to squeeze another cent an hour out by using some new and relatively unproven technology when the old way works just fine?

My company is currently trying to work towards a whole-house RFID setup (we sell consumer products.)

Problems we've had (in talking with the engineers):

1. Our product is in metal containers (within cardboard). Bad for RFID.2. Placement is CRITICAL. Especially in a plant environment, you need to know where the RFID tag is so you can read and write it quickly; in addition to minimizing #33. Outside RF. We've had instances to where in a test lab, we can read and write and verify the write within 80ms, as a box is cruising by on the conveyor. Once we transition to the plant, however, it gets a little more shaky, as you have less control over where the conveyor motor is, more flourescent lights, and oh yea, there's still those damn metal cans.

RFID has a long way to go from what I've been told by our engineers. It's not as dead simple as you might think -- of course, for handheld scanners though, which require human intervention - may be 10 times easier since humans can modify the environment to see fit on the fly.

We also are placing the tags on metal objects. If you have air and cardboard, it should not be a problem. Also, has your team looked at the new ceramic and foam backing to place the tag directly on the object?We are using active tags for WIP and are placing the tags directly on the objects. These tags are expensive (+-$20), but we reuse them. We use passive tags on the shipping labels.

Also, one more thing to look out for - the noise level. Certian parts of our plants were just too loud to use passive RF tec

Well there are a couple of advantages that I know of to RFID1. Inventory, beeing able to know what is in your store and where it is in a retal setting.

2. Convinence, things like being able to park a cart next to a teller and have all the items charged instantly.

3. RFID is already used sucessfuly for tracking pets and could be used to store medical data in people with alergies or other specal medical requirements, along with other personal data if the individual choses.

1. Inventory, beeing able to know what is in your store and where it is in a retal setting.

Actually, according to a recent study, RFIDs are only about 90% accurate at best, for large palettes whizzing by on conveyor belts in a warehouse setting.

2. Convinence, things like being able to park a cart next to a teller and have all the items charged instantly.

See #1. I don't know any retailer that would abide by less than 99.999% accuracy. RFID does not meet this requirement at all.

3. RFID is already used sucessfuly for tracking pets and could be used to store medical data in people with alergies or other specal medical requirements, along with other personal data if the individual choses.

Let me say I'm scared of some of the potental abuses to, but there are upsides to this.

Now you're getting to the real meat of why some want RFID to take off. It's much easier to convince someone to accept an injection of a little chip than to be tattooed with a bar code, Henry Rollins not withstanding.

While it may be beneficial, the very reason it's beneficial is also why it's bad in an Orwellian sense. There is no way for this to be beneficial without the bad. You can't cover up an RFID, or make it inoperative, without impairing its usefulness when needed.

2. Convinence, things like being able to park a cart next to a teller and have all the items charged instantly.

See #1. I don't know any retailer that would abide by less than 99.999% accuracy. RFID does not meet this requirement at all.

If you think this is true, you need to check your receipts and count your change more frequently.

I've never seen a shop that manages 99% accuracy... the clerk fails to scan an item (doesn't notice it didn't beep), the item is in the database with the wrong price, the item scans twice, the item is missing entirely (so the clerk asks you to give them the price)...

Retail scan percentages in America at the moment are around 95%. That is, for every 100 items scanned via barcode, 5 items are manually typed in as generic.

I was talking to a software provider for the supermarket sector, and at a conference he was recently at, the people working on RFID technology were happy to get 60% scan rate in a real world environment.

It's likely the tech is going to take another 5-7 years before it's up to the 95%+ scan rate we need to function and trust our inventory.

Why did we switch to barcodes when you could just bring it up to the clerk and they would punch in the price? Didn't the old way work? It is definately possible to manipulate barcodes to do some nasty things. Put a barcode from an "IPOD headphone" on an "IPOD Mp3 Player". If the clerk doesnt notice, you just got an Ipod for 10 bux. Obviously I wouldn't advocate doing this, but it goes to show that barcodes are anything but secure. If anything they are easier to manipulate, all you need is a photocopier and some tape. Sounds to me you are just hesitant to change, which is understandable, but IMHO RFID's would give us all a lot of nifty possibilities, which would outweigh the risks. The only problem I see is that it would be harder to manipulate an RFID system, meaning that people would trust it more, meaning that those who do have the knowledge to manipulate it are more likely to get away with it and with larger pay-offs to:-/

Well corporations will push for this for efficiency but think of possible consumer uses.
Say you have portable RFID scanner and a database provided by an organization.
This organization could be Greenpeace, Consumer Reports your favorite wine review site, etc.
So I walk into the store and key into my scanner, show me all coffee products that are Fair Trade Certified. Show me if they have any one of my favorite 10 wines, etc.
RFID tags for home use -buy a pack of say 100 tags and tag things in your house.

But I would bet that companies will push for laws banning the use of RFID scanners in businesses to prevent exactly that -- not for consumers but for competition. Imagine what a competitor would be able to pull off -- a quick walk around the store and they have the complete inventory of what the competior has and even quantities. Or, even more interesting would be a competor using an RFID scanner as people leave their competitors store. Then competitors will be able to tell what people are buying and then a

honestly, my answer to the question "aren't we efficient enough" raises a few questions in my mind.
i work in logistics, so to speak. manually finding and scanning barcodes takes three times as long as the alternative: electronic invoicing (where the supplier sends an invoice over the computer). not to mention the element of human error. any number of things can throw off the invoice quantities, and such errors must be (at high cost) hunted down and resolved.
to you, upcs are ambiguous. to me, they a

"Is tracking something via a barcode scanning system really so inefficient that we need RFID?"Yes. When you ship stuff you can only optically scan the surface."Stuff" has depth. RFID beats manual unstacking, restacking, re-covering, etc.External barcodes reflecting bulk contents are invalid when an item is removed but the external tag is left unchanged. RFID offers immediate inventory adjustment with each bulk scan. It goes more than one link deep, so to speak.

Capacity. Would you want to deal with 40" barcodes? Sure barcode density can be increased, but you're still relying on the visible spectrum for data transfer. And consider that barcodes must be relatively flat and not damamged. RFID is a great technology. No, we are not effecient enough without it. If that's your train of thought, I'll be laughing at you while you ride your horse to work.

I think what he's asking is: does the badge record the leaving time as well as the arrival time? This is a problem where I work as well...the badge records when you come in, but doesn't record when you leave, so it doesn't matter if you stay late to finish a project...all the management cares about is when you got there in the morning.

If the bad RFID tag infects a system that has the right "bits" attached to write RFID tags. The it would be possible for the infected system to write out new bad RFID tags, or event rewrite good RFID tags - turning them bad....

I see... so really all you need to do is secure the scaning computers from the attack just like a traditional virus. It was unclear to me if the tags could talk to each other, I was prety sure they couldn't.

No wonder people get scared... if somone with a good grasp of computer tech can get confused here imagine how your grandparents fell.

AFAIK, at this point, RFID tags are WORM. Trying to wirelessly *overwrite* an RFID chip would, as I understand it, do nothing other than potentially fry the chip, due to the way the chips are made - they don't have any write capability, so it would be akin to trying to re-write a pressed CD with a sooped-up laser.

At that point, I'd be more afraid of the EM emissions than any RFID dastardliness.

They are just supposed to be unique identifiers. For all it matters they could be random strings of 128-bits.The point is you use the RFID tag as a key in your database.

Say I receive 12 widgets from a company to put on my shelf. Each widget has an RFID tag. I enter each of them into my database. Now as I sell them they're scanned the tag is used to search the database [e.g. it's the key] and I mark it as gone.

The actual value of the tag doesn't matter so long as it's unique. E.g. two widgets don't have

That's true of most existing schemes, but more and more, manufacturers and end users are interested in actually encoding data in the tag itself. Some modern RFID tag protocols allow for an arbitrarily large address space on the tag. They also include security measures (basically, a password) to make it difficult to access the tag in order to prevent unauthorized altering of the data. Most if not all also include a mechanism for locking the tag down once and for all.There is a lot of value in this. It al

Yes, if it could some how insturct the reader to copy instructions to other tags, then yes, I would define that as a virus. But that takes more than just simply sending an SQL injection or over running some buffer. Tags can be build for read/write, so this could become a possiblily.

From rfidvirus.org: Here is where the trouble comes in. Up until now, everyone working on RFID technology has tacitly assumed that the mere act of scanning an RFID tag cannot modify back-end software, and certainly not in a malicious way. Unfortunately, they are wrong. In our research, we have discovered that if certain vulnerabilities exist in the RFID software, an RFID tag can be (intentionall) infected with a virus and this virus can infect the backend database used by the RFID software. From there it can be easily spread to other RFID tags. No one thought this possible until now. Later in this website we provide all the details on how to do this and how to defend against it in order to warn the designers of RFID systems not to deploy vulnerable systems.

So to sum up, if some programmer doesn't do his/her job, the RFID tag they plan on implanting in our passports could be used as delivery devices to compromise computer systems around the globe.

I'm going to rate this a pretty big if, though, as we know from all the patching going on, the probability is very high. RFID software is going to have to be thoroughly tested and watched like a hawk. Undoubtedly there's going to come a point where if one or two of these viruses get out and something newsworthy happens (airport computers crash, Citigroup gets credit card data stolen, etc.), the whole idea of RFID tags everywhere is going to get a serious black eye.

So to sum up, if some programmer doesn't do his/her job,we could see SQL Injection attacks, or buffer overflow vulnerabilities, or... must I go on? It could be argued (quite well IMO) that some programmer not doing their job is part and parcel of most security vulnerabilities and code bugs.

But once it hits as you describe, the black eye will be irrelevant. By then the tech will be "crucial to the actions" of first responders, airport security, etc.. Then what happens? Congress bloviates in a "special heari

I believe I was discussing such scenerios with friends before and considered that one could easily pass viruses this way, especially if the RFID chips are attached to other networks. Oh joy, proof that the more control the idiots in government try to squeeze the less secure they become each time.:)

Cashier: Um, $1 for 2 steaks? That can't be right.
Me: Sure it is. Look at the sticker. 50 cents a pound. The steaks weigh two pounds thus $1 for two steaks. Mad cow and all that.
Cashier: Ok, if the sticker says so, it must be right. *scan* *beep!* *scan* *beep!* *scan* *beep!*

Considering that with RFID, the wet dream of supermarkets is that they don't need cashiers anymore but you just drive by with your cart and the (also RFID'd) CC in your wallet, I think that problem won't exist.

This may be true but I still pay by check though I'm considering moving to cash, just like I do for gas. Cash only.

Yeah, it drives the credit agencies nuts because they can't track my credit history because I almost never have a credit bill (excluding my monthly ISP charge). The best they can do is see that I pay all my bills (electric, cable, etc) on time.

Merchants are certainly stymied because they can't gather enough information on me so they can't send me their snail mail spam.

No, I'm not paranoid. I just hate debt. Debt is evil. It sucks the life out of ones finances and inhibits the accumulation of wealth.

Granted, the current administration doesn't understand this but that's a whole other issue.

In 2 years you'll get a discount for paying with your card (or pay more for cash, even though they'll still call it a discount).

In 5 years you won't get anything at a huge supermarket chain anymore without card. Won't work? People will refuse to shop there? Think of some of the huge outlets that only let you IN when you got a card and go figure.

The problem isn't the debt. The problem is YOU willingly accepting the debt.By paying with cash, you are overpaying for everything you buy. Cash-back credit cards, when paid on time, are the equivalent of giving yourself a few percent raise every year.

Also, I think it is probably good for stores to know what kinds of good I buy. It could potentially help them keep things in stock better.

But keep overpaying with cash if that is the only way you can handle finance psychologically...

Totally fascinating... so in the near future we can expect the airport/supermarket security to immediately arrest anyone with a working IPAQ =)
Seriously thou, think of the implications! You could actually increase all the pricetags at your local Wallmarrt...

Only if the dimwits writing the RFID reading software are stupid enough to treat all rfid readings as 100% trustable OR does something stupid like allow scripting.

I can see a buffer overflow if your rfid is capable of generating a string massively larger than a normal rfid.

Outside of a SQL injection to get past a really poorly designed RFID reading application or plain stupidity in the RFID reading software part I can not see any way for a RFID to get the host reading PC to execute the code inside it.

Except these dimwits DO treat RFIDs as trustable.Not 'evil', just dumb. RFID reader is an insecure input device like any other, and you don't even need physical access to use it. But it seems nobody thought of preparing a barcode that could crash the cash register, recording a magnetic card that would infect the security system, etc. Some devices are thought to be too simple to mean danger - wrongly. I remember some old Atari games that would crash or misbehave if you'd open the joystick and pressed "left" and "right" simultaneously. I burnt electronics of a RC toy car by telling it to go forward and back at the same time. Got a motorbike to run backward by starting the engine by pushing it backwards. Managed to crash my cell phone by buffer overflow at battery load level sensor (it WAS a software failure!) Got a CD tray to stop halfway by simultaneously pressing the eject key and sending eject commands from the computer.

A toggle switch can be ballanced in the middle position. A pushbutton can be softly pressed make a spark-gap. Unconnected lines can be shorted. Even a single-bit input device cannot be trusted.

"It has nothing to do with the "evilness of RFID" and with the stupidity of the backend. An RFID tag is just a string of text. It's up to the backend application to sort it out."

Someone could write really bad barcode reader software with the same vulnerability, or they could even (I know, I'm stretching things here) write software that overflowed based on how much a user typed into the keyboard. Somehow "if length > maximum" is too much to ask for.

It's not just a string, it's a series of blocks that can be read as ASCII or binary data (for most tags/readers). The data can be encrypted, and the blocks can be locked (to become read-only permanently). And the applications can be smart enough, if they do not lock/encrypt the tags, to consider the data more clearly.

When he opens his box and finds that the poison is not let out, but the cat is still not alive (um, probably "dead anyway", to avoid unnecessary confusion in this matter (i.e., it won't suddenly "quantum wake up")) after having catched a RFID virus.

Did anyone notice that the author of the article (John Markoff) refers to Minix as "heart of Linux"? Markoff has been writing on technology for NYT for umpteen years and I'm suprised he'd write something like that!

Hmmm... on the other hand he is the one who first wrote about that dangerous hacker Kevin Mitnick...

No, the interesting point of TFA is that people don't understand that RFID tag data is just as untrustworthy as data you get from a random web form. That's their wakeup call: if you read and parse RFID data, sanitize it first!

By itself RFID could be insecure. But you could retain its simplicity and its advantages (extends reading to a couple meters; longer number ID) with a second layer of security.
For example at one urban college library they put the cardholders' face immediately on the screen. The cardholder could have a fake ID or borrowed a friends, but its much harder to fake a face image. And a image is much easier for the guard to process than some descriptive text. Likewise the RFID code reader could flash an image of the product to the cashier or warehouse clerk as secondary identification.

Of course this helps with switched RFID tags between products (i.e. if someone tries e.g. to buy a TV for the price of a box of potato chips). However, if the goal is to attack the system, by the time the cashier sees the image (or rather, doesn't see it) it is already too late: The attack already happened.

A lot of good comments have already been made here, but I'm surprised nobody has commented yet on something that seems obvious: if you're going to hack into a system, you have to know a little bit about the system first. You can't simply design some buffer overflow exploit and trust it will "hack" the back-end system. That seems awful "Independence Day"-ish - you know, writing a virus here on Earth that somehow magically attacks and shuts down an alien computer system. Makes for exciting movies (if you're not minimally smart about computers) but it never works in the real world.

In this case, it seems to me that if you know enough about both ends of the process, sure, you can develop some method to penetrate the system. Most malware authors have the benefit of working on a very well-known platform - the Windows PC - with known software (one of the limited numbers of email or browser programs). But attacking a back-end system like this is a much more dicey proposition - each large corporation probably will have its own back end, and may be running any of a dozen OS-and-database combinations.

So to benefit from this attack, it seems to me that the author has to be an insider to stand a ghost of a chance of success. If he's an insider, there are MUCH easier ways to penetrate the system.

As a result, while I have great concerns about RFID, this strikes me as FUD.1) Develop complicated, application-specific RFID attack that would never be real-world useful2) Write research paper spreading more fear about RFID3) PROFIT! (or at least get a lot of attention)

Scenario: Someone working at the IT department of a shop (thus having inside knowledge of the system) gets fired and wants to harm the shop. The shop will make damn sure that he will not have access to the system afterwards (and let's assume that network access is well protected, too). However, he may well be able to smuggle a malicious RFID tag into the shop. There it lies, unnoticed, until a few days later some unsuspecting customer buys the item thus tagged. As soon as the tag is read by the scanner, the

"A lot of good comments have already been made here, but I'm surprised nobody has commented yet on something that seems obvious: if you're going to hack into a system, you have to know a little bit about the system first."

You're 100% right, but there will emerge from 1 to 3 dominant vendors of backend RFID systems, and they will be deployed in many places, many people will have knowledge of these systems, and help to learn about their underlying architecture will likely be found right on the vendor's website, or only a couple Google searches away. Like every other system out there, there will be a few weird custom jobs, but most of it will be off-the-shelf software that thousands of organizations use.

The problem I have with the idea of an RFID virus is that most RFID middleware is based on either.NET or Java. I'm not saying it's impossible but the prospect to propagating a virus by RFID tag becomes a whole lot harder if they have to put MSIL or Java bytecode on the tag. I've developed a few RFID applications and all of the incoming RFID data are numbers (e.g. id: 12345) and I just look that information up in a database. It's not like I'm storing "SELECT * FROM table WHERE id = 12345" on the tag and

I'm not sure you understand an SQL injection attack. In your example, your query would be something like "SELECT * FROM table WHERE id = " + tagID. If the valid RFID tag gives you "12345", all is well. If the altered RFID tag gives you "12345 or 1 = 1", well, you've got a problem. If your tagID is a numeric or you check the data you receive from the tag, you'll be fine, but if you just take in the data as a string or byte array, you're susceptible to this attack. Obviously my example doesn't fall into

I'm not sure you understand how RFID tags work. There are a variety of standards on how RFID tags are encoded, all of which break down into partitioning the tag's data into segments to form the unique identifier

For the sake of argument I'll use EPC SGTIN96. In the SGTIN tag has four partitions: Filter, Company Prefix, Item Reference, and Serial Number. Each of these fields is of varying size depending on how big tag is. Typically RFID tags are 96 bits (although some tags can get up to 1Kbit), even using 7 bit ascii there's not a whole lot you can fit in 96 bits. When I poll the reader, or the middleware I'm getting back a number, e.g. 12345 and it's my responsibility to parse through that number to get the fields I'm interested in. In this scenario I would have to be doing some *very* sloppy programming to open myself to an SQL injection attack (something along the lines of treating known numeric data as a string).

ISO and EPC Gen 2 tags do support custom data, which I suppose could be used to store strings but since it is severely space constrained (typically in the range of 2-32 bytes) I question the viability of such an attack. Not to mention that the field will likely be used to writing in ids instead of human readable data. Finally, it is common to encrypt the custom payload on an rfid tag. So even if somebody were to change it to "AND 1 = 1" it would be caught when the program tries to decrypt the tag.

The article is crap. More clueless acedmia. Hello - did anyone at this prestigous institute actually TRY to write a virus for the RFID tag? The article implies they might have. But, frankly, i doubt it - as an RFID tag has about 256 bytes of capacity. Wow, what horrible evil virus could be unleashed in 256 bytes.Fouling up sloppy backend SQL code is one thing. Implying that my infected cat will slow to a crawl, barf up pr0n-storm hairballs and begin all night cries of "Viagra! Cialis!" because of its RFID t

There is nothing viral about this story. It is just an RFID reader buffer overflow vulnerability. There may only ever be one tag involved in an attack; only the RFID reader software is affected, not other tags.

Ummm, no. It uses the data in an evil tag to create a SQL injection attack which causes the vulnerable backend db to infect other tags (admittedly in a contrived but quite possible scenario). It is definitely viral. (They show other attacks such as buffer overflows which are not viral as well.)