[cl-store-devel] On the security of cl-store
Alex Mizrahi
alex.mizrahi at gmail.com
Sun Mar 7 19:20:12 UTC 2010
SR> To my knowledge the only other vulnerabilities would revolve
SR> around uses of eval, read or read-from-string which cl-store
If denial-of-service (e.g. crashing lisp server) qualifies as a successful
attack, spectrum of issues to deal with is much larger. Perhaps simplies way
to DoS the server is force it to use large quantities of memory, so it would
be thrashing and eventually will collapse. As I understand, with cl-store
binary format output is proportional to serialized input and can't be much
large. So, to start with, one can simply reject messages which are too long.
More sophisticate strategy is to make server leaking memory. For example,
force it to intern new symbols in each packet, then packets will be small,
but with each packet server will leak some memory. Obvious fix to this
problem is to forbid interning new symbol.
Finally, one can DoS server by putting it into an infinite loop. This can be
achieved by sending a cyclical data structure where server code expects
simple one. Then iteration or recursive traversal will either hang in
indefinite loop or cause a stack overflow.
More information about the cl-store-devel
mailing list