01
No sensor access
The attack changes the scene, not the LiDAR. Its emitter and receiver are never touched.
AI SECURITY · IEEE SOUTHEASTCON 2025
ReAL watches a LiDAR's readings and flags when a reflective surface is distorting them, fast enough to run live on a Jetson Orin Nano. In our tests, a layer of aluminum foil made the LiDAR misjudge object widths by 20 to 24 percent.

THE GAP
LiDAR measures distance by firing laser pulses and timing how long they take to come back. A reflective surface scatters those pulses, so parts of an object return sparse points or none at all. We named this a Surface Reflectivity-Induced Perturbation (SRIP) attack. It needs no access to the emitter or the receiver, just something reflective in the scene.
01
The attack changes the scene, not the LiDAR. Its emitter and receiver are never touched.
02
Covered in foil, a 240 mm object measured 191.1 mm, and a 210 mm object measured 158.6 mm.
03
The paper's example is ordinary: a silver car on a sunny day could misdirect the pulses.
WHAT IT DOES
ReAL is a support vector machine that reads the angle and distance of LiDAR returns and labels them normal or reflective. When it spots an attack, it raises a binary alarm for the vehicle's driver-assistance module, and the design hands width measurement to the depth camera. It is for autonomous systems that rely on LiDAR and need to know when not to. Luke Beirne and I contributed equally to the paper, with Syed Rafay Hasan and Wesam Al Amiri, and I presented it at IEEE SoutheastCon 2025.
The detector reads only angle and distance from the LiDAR. It needs no camera or extra hardware to detect.
Inference runs on a Jetson Orin Nano wired to an RPLiDAR A1M8-R6, in 0.083 to 4.727 ms.
A positive call triggers a binary alarm for the driver-assistance module, adding less than 1 ms.
The recorded scans, training scripts and trained SVM models are all in the public repo.
HOW IT WORKS
The LiDAR sweeps the scene, reporting angle, distance and quality for every point.
Points become X, Y coordinates, and DBSCAN groups them into objects.
An object's width is the distance between the outermost points in its cluster.
Scans whose width misses the hand-measured width are labeled reflective; the rest, normal.
A support vector machine learns to tell normal readings from reflective ones.
On the Jetson, a reflective call raises an alarm in under 1 ms.
SYSTEM DESIGN
Models are trained offline on recorded scans, then run on a Jetson Orin Nano connected to the LiDAR over USB. The output is a single bit, normal or attacked, sent on as an alert.
Sensor
RPLiDAR A1M8-R6
Rotating LiDAR, connected over USB
Features
Angle and distance
Per LiDAR return, from polar readings
DBSCAN clusters
Separate the returns by object
Detect
SVM classifier
Normal (0) or reflective (1)
Jetson Orin Nano
0.083 to 4.727 ms across scenarios
Respond
Binary alarm
Sent to the driver-assistance module
Depth camera
Takes over width measurement
RESULTS
20–24%
width error when foil covered an object: a 240 mm box read as 191.1 mm
99.97%
detection accuracy in Scenario 3, with 92.71% and 95.53% in Scenarios 1 and 2
0.083 ms
latency in Scenario 3 on a Jetson Orin Nano, and 4.727 ms at the slowest
< 1 ms
added by the real-time alert
Accuracy and latency are as reported in the paper. Each scenario has its own trained model, and all of it comes from a lab bench: one RPLiDAR, four boxes and aluminum foil as the reflector.
WHAT IT TAUGHT ME
What stuck with me is how cheap the attack is. No hacking and no special gear, just foil, and the width readings were off by a fifth or more. That is why I wanted a detector small enough to run beside the sensor. The limits are real. This is a bench study with one LiDAR, four boxes and foil, and the model sees only angle and distance, so a new setup would likely need new training data.
BUILT WITH
Like what you see?
Thanks for reading. There's more where this came from.