StackVault: Protection from Untrusted Functions
Pith reviewed 2026-05-25 01:04 UTC · model grok-4.3
The pith
StackVault blocks untrusted functions from accessing sensitive stack data using kernel-enforced spatial and temporal controls.
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
Core claim
StackVault automatically enforces stack protection through spatial and temporal access monitoring and control over both sensitive stack data and untrusted functions.
What carries the argument
Kernel module that uses unforgeable function identities to carry out sensitive data protection.
If this is right
- Marked sensitive stack data and any data reached through stack pointers stay inaccessible to untrusted functions.
- Access control covers both the locations of the data and the timing of attempted reads or writes.
- The LLVM extension places protection operations without requiring changes to application source code.
- Runtime cost stays at or below 2.4 percent across the evaluated real-world programs.
Where Pith is reading between the lines
- Applications could safely load more third-party code without splitting into separate processes for isolation.
- The same identity-tracking idea might extend to protecting data in other memory areas if the kernel module is updated.
- Intra-process trust boundaries become enforceable at the function level rather than only at the process level.
Load-bearing premise
The kernel module can reliably identify and enforce controls using unforgeable function identities for all untrusted functions executing in the same process.
What would settle it
An untrusted function that successfully reads or writes a marked stack location despite the kernel module's identity checks would show the protection does not hold.
Figures
read the original abstract
Data exfiltration attacks have led to huge data breaches. Recently, the Equifax attack affected 147M users and a third-party library - Apache Struts - was alleged to be responsible for it. These attacks often exploit the fact that sensitive data are stored unencrypted in process memory and can be accessed by any function executing within the same process, including untrusted third-party library functions. This paper presents StackVault, a kernel-based system to prevent sensitive stack-based data from being accessed in an unauthorized manner by intra-process functions. Stack-based data includes data on stack as well as data pointed to by pointer variables on stack. StackVault consists of three components: (1) a set of programming APIs to allow users to specify which data needs to be protected, (2) a kernel module which uses unforgeable function identities to reliably carry out the sensitive data protection, and (3) an LLVM compiler extension that enables transparent placement of stack protection operations. The StackVault system automatically enforces stack protection through spatial and temporal access monitoring and control over both sensitive stack data and untrusted functions. We implemented StackVault and evaluated it using a number of popular real-world applications, including gRPC. The results show that StackVault is effective and efficient, incurring only up to 2.4% runtime overhead.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. The paper presents StackVault, a kernel-based system to prevent sensitive stack-based data (including data pointed to by stack pointers) from unauthorized access by intra-process untrusted functions such as third-party libraries. It consists of user APIs for specifying protected data, a kernel module that uses unforgeable function identities for spatial/temporal monitoring and control, and an LLVM extension for transparent instrumentation. The abstract claims the system was implemented and evaluated on real-world applications including gRPC, showing it is effective with up to 2.4% runtime overhead.
Significance. If the enforcement mechanisms hold, the approach could address a practical gap in protecting against data exfiltration within a single process address space, complementing existing techniques for third-party library risks highlighted by incidents like Equifax. The combination of kernel-level identity enforcement with compiler support is a notable design point, though the evaluation details are needed to assess real impact.
major comments (2)
- [Abstract] Abstract: the claim of effectiveness and efficiency is based on evaluation of real-world apps (including gRPC) but provides no data, error bars, methodology, or specific results to support the central claims of protection and low overhead.
- [Kernel module component] Kernel module component (as described in abstract): the central claim requires reliable use of unforgeable function identities for spatial/temporal access control over untrusted functions in shared address space, but the description does not address how identities are bound to call sites, prevent pointer forgery by untrusted code, or handle third-party binaries/libraries arriving without LLVM instrumentation (e.g., Apache Struts example).
minor comments (2)
- [Abstract] The abstract states 'Stack-based data includes data on stack as well as data pointed to by pointer variables on stack' without clarifying how pointers to heap or other regions are tracked for temporal control.
- No mention of how the system interacts with existing stack protections (e.g., ASLR, stack canaries) or potential compatibility issues with multi-threaded applications.
Simulated Author's Rebuttal
We thank the referee for the constructive feedback. We address each major comment below.
read point-by-point responses
-
Referee: [Abstract] Abstract: the claim of effectiveness and efficiency is based on evaluation of real-world apps (including gRPC) but provides no data, error bars, methodology, or specific results to support the central claims of protection and low overhead.
Authors: The abstract summarizes the evaluation results, citing implementation on real-world applications including gRPC and a maximum overhead of 2.4%. Full methodology, per-application results, and any variance measures appear in the evaluation section. We will revise the abstract to incorporate a concise summary of key quantitative results (e.g., overhead range across tested applications) while retaining its brevity. revision: partial
-
Referee: [Kernel module component] Kernel module component (as described in abstract): the central claim requires reliable use of unforgeable function identities for spatial/temporal access control over untrusted functions in shared address space, but the description does not address how identities are bound to call sites, prevent pointer forgery by untrusted code, or handle third-party binaries/libraries arriving without LLVM instrumentation (e.g., Apache Struts example).
Authors: Section 3 explains that function identities are kernel-managed and unforgeable, with the LLVM instrumentation inserting the necessary calls at function boundaries to bind identities to call sites; access decisions are made by the kernel using these identities rather than user-supplied pointers, which precludes forgery. The system requires recompilation of the application and its libraries with the LLVM pass; the Apache Struts reference in the introduction illustrates the general third-party risk motivating the work but is not presented as a target for StackVault (a C/C++-focused system). We will add explicit text clarifying the binding mechanism and forgery resistance in the revision. revision: yes
Circularity Check
No circularity; system description is self-contained
full rationale
The paper is a systems description of StackVault with three components (APIs, kernel module using unforgeable identities, LLVM extension) and empirical evaluation on applications like gRPC. No equations, fitted parameters, predictions, or derivation chains exist that could reduce to inputs by construction. Claims rest on implementation details and runtime measurements (up to 2.4% overhead), which are externally falsifiable and independent of any self-citation or self-definition. No load-bearing steps match the enumerated circularity patterns.
Axiom & Free-Parameter Ledger
axioms (2)
- domain assumption The operating system kernel can enforce access controls using unforgeable function identities for intra-process functions.
- domain assumption The LLVM compiler extension can transparently insert stack protection operations without altering program semantics.
Reference graph
Works this paper leans on
-
[1]
https://eur-lex .europa.eu/ legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN
European general data privacy regulation. https://eur-lex .europa.eu/ legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679&from=EN. Accessed: 2017-07-05
work page 2017
-
[2]
https://www .hhs.gov/hipaa/ for-professionals/
European general data privacy regulation. https://www .hhs.gov/hipaa/ for-professionals/. Accessed: 2017-07-05
work page 2017
-
[3]
GCC, the gnu compiler collection. https://gcc .gnu.org/. Accessed: 2016-10-30
work page 2016
-
[4]
Cross-thread stack access. https://software .intel.com/en-us/inspector- user-guide-linux-cross-thread-stack-access, accessed Aug. 5, 2018
work page 2018
-
[5]
https: //curl.haxx.se/libcurl/c/fileupload.html, accessed August 2, 2018
Fileupload - upload to a file to a specific url using libcurl. https: //curl.haxx.se/libcurl/c/fileupload.html, accessed August 2, 2018. 11
work page 2018
-
[6]
https: //grpc.io/, accessed August 2, 2018
gRPC - a high performance, open-source universal rpc framework. https: //grpc.io/, accessed August 2, 2018
work page 2018
-
[7]
https: //curl.haxx.se/libcurl/c/htmltidy.html, accessed August 2, 2018
Htmltidy - download a document and use libtidy to parse the html. https: //curl.haxx.se/libcurl/c/htmltidy.html, accessed August 2, 2018
work page 2018
-
[8]
https://github .com/madler/ zlib/blob/master/contrib/minizip/miniunz.c, accessed August 2, 2018
Miniunz - an open source file extraction tool. https://github .com/madler/ zlib/blob/master/contrib/minizip/miniunz.c, accessed August 2, 2018
work page 2018
-
[9]
https://github .com/ madler/zlib/blob/master/contrib/minizip/minizip.c, accessed August 2, 2018
Minizip - an open source file compression tool. https://github .com/ madler/zlib/blob/master/contrib/minizip/minizip.c, accessed August 2, 2018
work page 2018
-
[10]
https://curl.haxx.se/libcurl/c/xmlstream.html, accessed August 2, 2018
Xmlstream - stream-parse a document using the streaming expat parser. https://curl.haxx.se/libcurl/c/xmlstream.html, accessed August 2, 2018
work page 2018
-
[11]
Elon musk is accusing a tesla employee of trying to sabotage the company. https://www.businessinsider.com/tesla-employee-engaged-in- sabotage-against-the-company-report-2018-6, accessed August 5, 2018
work page 2018
-
[12]
Github hacked, millions of projects at risk of being modified or deleted. https://www.extremetech.com/computing/120981-github-hacked- millions-of-projects-at-risk-of-being-modified-or-deleted, accessed August 5, 2018
work page 2018
-
[13]
Equifax blames open-source software for its record-breaking security breach: Report. https://www .zdnet.com/article/equifax-blames-open- source-software-for-its-record-breaking-security-breach, accessed July 5, 2018
work page 2018
-
[14]
Major open source code repository hacked for months. https://www.geek.com/news/major-open-source-code-repository- hacked-for-months-says-fsf-551344, accessed July 5, 2018
work page 2018
-
[15]
Martín Abadi, Mihai Budiu, Ulfar Erlingsson, and Jay Ligatti. Control-flow integrity. In Proceedings of the 12th ACM conference on Computer and communications security, pages 340–353. ACM, 2005
work page 2005
-
[16]
Control-flow integrity principles, implementations, and applications
Martín Abadi, Mihai Budiu, Úlfar Erlingsson, and Jay Ligatti. Control-flow integrity principles, implementations, and applications. ACM Transactions on Information and System Security (TISSEC) , 13(1):4, 2009
work page 2009
-
[17]
Address obfuscation: An efficient approach to combat a broad range of memory error exploits
Sandeep Bhatkar, Daniel C DuVarney, and Ron Sekar. Address obfuscation: An efficient approach to combat a broad range of memory error exploits. In USENIX Security Symposium , volume 12, pages 291–301, 2003
work page 2003
-
[18]
Computer security: art and science
Matt Bishop. Computer security: art and science . Addison-Wesley Professional, 2003
work page 2003
-
[19]
Secureblue++: Cpu support for secure execution
Rick Boivie and Peter Williams. Secureblue++: Cpu support for secure execution. IBM, IBM Research Division, RC25287 (WAT1205-070) , pages 1–9, 2012
work page 2012
-
[20]
Linux kernel vulnerabilities: State-of-the-art defenses and open problems
Haogang Chen, Yandong Mao, Xi Wang, Dong Zhou, Nickolai Zeldovich, and M Frans Kaashoek. Linux kernel vulnerabilities: State-of-the-art defenses and open problems. In Proceedings of the Second Asia-Pacific Workshop on Systems, page 5. ACM, 2011
work page 2011
-
[21]
Stackarmor: Comprehensive protection from stack-based memory error vulnerabilities for binaries
Xi Chen, Asia Slowinska, Dennis Andriesse, Herbert Bos, and Cristiano Giuffrida. Stackarmor: Comprehensive protection from stack-based memory error vulnerabilities for binaries. In NDSS, 2015
work page 2015
-
[22]
Shreds: Fine-grained execution units with private memory
Yaohui Chen, Sebassujeen Reymondjohnson, Zhichuang Sun, and Long Lu. Shreds: Fine-grained execution units with private memory. In Security and Privacy (SP), 2016 IEEE Symposium on , pages 56–71. IEEE, 2016
work page 2016
-
[23]
Shredding your garbage: Reducing data lifetime through secure deallocation
Jim Chow, Ben Pfaff, Tal Garfinkel, and Mendel Rosenblum. Shredding your garbage: Reducing data lifetime through secure deallocation. In USENIX Security, pages 22–22, 2005
work page 2005
-
[24]
Victor Costan and Srinivas Devadas. Intel sgx explained. IACR Cryptology ePrint Archive, 2016:86, 2016
work page 2016
-
[25]
Stackguard: Automatic adaptive detection and prevention of buffer-overflow attacks
Crispan Cowan, Calton Pu, Dave Maier, Jonathan Walpole, Peat Bakke, Steve Beattie, Aaron Grier, Perry Wagle, Qian Zhang, and Heather Hinton. Stackguard: Automatic adaptive detection and prevention of buffer-overflow attacks. In Usenix Security , volume 98, pages 63–78, 1998
work page 1998
-
[26]
Complete control-flow integrity for commodity operating system kernels
J Criswell, N Dautenhahn, and V A Kcofi. Complete control-flow integrity for commodity operating system kernels. In 2014 IEEE Symposium on Security and Privacy (SP), pages 292–307
work page 2014
-
[27]
The performance cost of shadow stacks and stack canaries
Thurston HY Dang, Petros Maniatis, and David Wagner. The performance cost of shadow stacks and stack canaries. In Proceedings of the 10th ACM Symposium on Information, Computer and Communications Security, pages 555–566. ACM, 2015
work page 2015
-
[28]
Vanish: Increasing data privacy with self-destructing data
Roxana Geambasu, Tadayoshi Kohno, Amit A Levy, and Henry M Levy. Vanish: Increasing data privacy with self-destructing data. In USENIX Security Symposium, pages 299–316, 2009
work page 2009
-
[29]
Swipe: eager erasure of sensitive data in large scale systems software
Kalpana Gondi, Prithvi Bisht, Praveen Venkatachari, A Prasad Sistla, and VN Venkatakrishnan. Swipe: eager erasure of sensitive data in large scale systems software. In Proceedings of the second ACM conference on Data and Application Security and Privacy, pages 295–306. ACM, 2012
work page 2012
-
[30]
Minimizing lifetime of sensitive data in concurrent programs
Kalpana Gondi, A Prasad Sistla, and VN Venkatakrishnan. Minimizing lifetime of sensitive data in concurrent programs. In Proceedings of the 4th ACM conference on Data and application security and privacy, pages 171–174. ACM, 2014
work page 2014
-
[31]
Lest we remember: cold-boot attacks on encryption keys
J Alex Halderman, Seth D Schoen, Nadia Heninger, William Clarkson, William Paul, Joseph A Calandrino, Ariel J Feldman, Jacob Appelbaum, and Edward W Felten. Lest we remember: cold-boot attacks on encryption keys. Communications of the ACM, 52(5):91–98, 2009
work page 2009
-
[32]
Safedispatch: Securing c++ virtual calls from memory corruption attacks
Dongseok Jang, Zachary Tatlock, and Sorin Lerner. Safedispatch: Securing c++ virtual calls from memory corruption attacks. In NDSS, 2014
work page 2014
-
[33]
Countering code-injection attacks with instruction-set randomization
Gaurav S Kc, Angelos D Keromytis, and Vassilis Prevelakis. Countering code-injection attacks with instruction-set randomization. In Proceedings of the 10th ACM conference on Computer and communications security , pages 272–280. ACM, 2003
work page 2003
-
[34]
Comprehensively and efficiently protecting the heap
Mazen Kharbutli, Xiaowei Jiang, Yan Solihin, Guru Venkataramani, and Milos Prvulovic. Comprehensively and efficiently protecting the heap. ACM Sigplan Notices, 41(11):207–218, 2006
work page 2006
-
[35]
A. Kundu and E. Bertino. A new class of buffer overflow attacks. In 2011 31st International Conference on Distributed Computing Systems , pages 730–739, June 2011
work page 2011
-
[36]
Unisan: Proactive kernel memory initialization to eliminate data leakages
Kangjie Lu, Chengyu Song, Taesoo Kim, and Wenke Lee. Unisan: Proactive kernel memory initialization to eliminate data leakages. In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, pages 920–932. ACM, 2016
work page 2016
-
[37]
Apache struts 2: how technical and development gaps caused the equifax breach
Jeff Luszcz. Apache struts 2: how technical and development gaps caused the equifax breach. Network Security, 2018(1):5–8, 2018
work page 2018
-
[38]
Cve-2014-0160: The heartbleed vulnerability
Alyssa Milburn, Herbert Bos, and Cristiano Giuffrida. Cve-2014-0160: The heartbleed vulnerability. 2014
work page 2014
-
[39]
SafeInit: Comprehensive and practical mitigation of uninitialized read vulnerabilities
Alyssa Milburn, Herbert Bos, and Cristiano Giuffrida. SafeInit: Comprehensive and practical mitigation of uninitialized read vulnerabilities. 2017
work page 2017
-
[40]
Heapsentry: kernel-assisted protection against heap overflows
Nick Nikiforakis, Frank Piessens, and Wouter Joosen. Heapsentry: kernel-assisted protection against heap overflows. In International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment, pages 177–196. Springer, 2013
work page 2013
-
[41]
Gene Novark and Emery D Berger. Dieharder: securing the heap. In Proceedings of the 17th ACM conference on Computer and communications security, pages 573–584. ACM, 2010
work page 2010
-
[42]
Samurai: protecting critical data in unsafe languages
Karthik Pattabiraman, Vinod Grover, and Benjamin G Zorn. Samurai: protecting critical data in unsafe languages. In ACM SIGOPS Operating Systems Review, volume 42, pages 219–232. ACM, 2008
work page 2008
-
[43]
Mike Pittenger. Know your open source code. Network Security , 2016(5):11–15, 2016
work page 2016
-
[44]
A practical dynamic buffer overflow detector
Olatunji Ruwase and Monica S Lam. A practical dynamic buffer overflow detector. In NDSS, volume 4, pages 159–169, 2004
work page 2004
-
[45]
On the effectiveness of address-space randomization
Hovav Shacham, Matthew Page, Ben Pfaff, Eu-Jin Goh, Nagendra Modadugu, and Dan Boneh. On the effectiveness of address-space randomization. In Proceedings of the 11th ACM conference on Computer and communications security, pages 298–307. ACM, 2004
work page 2004
-
[46]
Freeguard: A faster secure heap allocator
Sam Silvestro, Hongyu Liu, Corey Crosser, Zhiqiang Lin, and Tongping Liu. Freeguard: A faster secure heap allocator. In CCS, 2017
work page 2017
-
[47]
Transparent runtime shadow stack: Protection against malicious return address modifications, 2008
Saravanan Sinnadurai, Qin Zhao, and Weng fai Wong. Transparent runtime shadow stack: Protection against malicious return address modifications, 2008
work page 2008
-
[48]
Breaking the memory secrecy assumption
Raoul Strackx, Yves Younan, Pieter Philippaerts, Frank Piessens, Sven Lachmund, and Thomas Walter. Breaking the memory secrecy assumption. In Proceedings of the Second European Workshop on System Security, EUROSEC ’09, pages 1–8, New York, NY , USA, 2009. ACM
work page 2009
-
[49]
Jun Wang, Xi Xiong, and Peng Liu. Between mutual trust and mutual distrust: practical fine-grained privilege separation in multithreaded applications. In 2015 USENIX Annual Technical Conference (USENIX ATC 15), pages 361–373, 2015
work page 2015
-
[50]
David A. Wheeler. How to prevent the next heartbleed
-
[51]
The openacc data model: Preliminary study on its major challenges and implementations
Michael Wolfe, Seyong Lee, Jungwon Kim, Xiaonan Tian, Rengan Xu, Barbara Chapman, and Sunita Chandrasekaran. The openacc data model: Preliminary study on its major challenges and implementations. Parallel Computing, 78:15 – 27, 2018
work page 2018
-
[52]
Practical control flow integrity and randomization for binary executables
Chao Zhang, Tao Wei, Zhaofeng Chen, Lei Duan, Laszlo Szekeres, Stephen McCamant, Dawn Song, and Wei Zou. Practical control flow integrity and randomization for binary executables. In Security and Privacy (SP), 2013 IEEE Symposium on , pages 559–573. IEEE, 2013
work page 2013
discussion (0)
Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.