Skip to content

Commit 2a960ec

Browse files
pitroualamb
andauthored
Update docs/source/format/Security.rst
Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
1 parent db8b84a commit 2a960ec

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

docs/source/format/Security.rst

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,18 @@ process' address space. As such, in-memory Arrow data should be accessed with ca
3939
Invalid data
4040
------------
4141

42-
Reading and interpreting Arrow data involves reading into several buffers,
42+
Arrow is a low level memory format, and the contents of Arrow
43+
buffers are often combined and treated as pointers into the process
44+
memory space. Invalid Arrow data may cause invalid memory accesses
45+
(potentially crashing the process) or permit access to non-Arrow data
46+
(potentially allowing an attacker to exfiltrate confidential information).
47+
48+
For example, reading and interpreting Arrow data involves reading into several buffers,
4349
sometimes in non-trivial ways. This may for instance involve data-dependent
4450
indirect addressing: to read a value from a Binary array, you need to
4551
1) read its offsets in buffer #2, and 2) read the range of bytes delimited by
4652
these offsets in buffer #3. If the offsets are invalid (deliberately or not),
47-
then step 2) can access invalid memory (potentially crashing the process) or
48-
memory unrelated to Arrow (potentially allowing an attacker to exfiltrate
49-
confidential data).
53+
then step 2) can access invalid memory.
5054

5155
.. TODO:
5256
For each layout, we should list the associated security risks and the recommended

0 commit comments

Comments
 (0)