obliv-clang: Real-World Oblivious Programming in C++
- URL: http://arxiv.org/abs/2606.16187v1
- Date: Mon, 15 Jun 2026 03:58:42 GMT
- Title: obliv-clang: Real-World Oblivious Programming in C++
- Abstract summary: We propose a compilation-time checking tool, obliv-clang, to check the obliviousness of a program written in C++.<n>It is designed to support the rich language features in C++, including the complicated concept of arbitrarily nested pointers.<n>We show that programs compiled using obliv-clang can outperform previous solutions.
- Score: 4.102575075838108
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Side-channel vulnerabilities, particularly timing and access-pattern-based attacks, have become critical issues for confidential data processing in trusted environments. Oblivious programming is an effective approach to alleviate these attacks by making program execution not leak any secret through execution time and data access traces. To facilitate oblivious programming in practice, we propose a compilation-time checking tool, obliv-clang, which can comprehensively check the obliviousness of a program written in C++. It is designed to support the rich language features in C++, including the complicated concept of arbitrarily nested pointers, in order to seamlessly work with existing industry-level codebases and produce high-performance compiled binaries with minimum compilation overheads. We design a set of rules in obliv-clang and formally prove their soundness in the presence of complicated C++ language features. We also implement several non-trivial oblivious algorithms as case studies to demonstrate the expressiveness of obliv-clang, and show that programs compiled using obliv-clang can outperform previous solutions.
Related papers
- ShadowProbe: Language-Extensible Detection of Hidden Algorithmic Complexity Vulnerabilities [28.083603872030892]
Algorithmic Complexity Vulnerabilities (ACVs) arise when adversarial inputs trigger worst-case execution behavior.<n>We present ShadowProbe, a framework for discovering ACVs through lightweight static analysis.<n>We apply it to large-scale systems including CPython, Zig Rustc, and vLLM.
arXiv Detail & Related papers (2026-07-06T09:15:25Z) - ATLAS: Automated Tree-based Language Analysis System for C and C++ source programs [1.0499611180329804]
This paper introduces ATLAS, a Python-based Command-Line Interface (CLI) that generates statement-level Control Flow Graphs (CFG) and type-aware Data Flow Graphs (DFG)<n>ATLAS provides a practical foundation for improving downstream Software Engineering (SE) and machine-learning-based program understanding.
arXiv Detail & Related papers (2025-12-14T01:11:11Z) - Context-Guided Decompilation: A Step Towards Re-executability [50.71992919223209]
Binary decompilation plays an important role in software security analysis, reverse engineering and malware understanding.<n>Recent advances in large language models (LLMs) have enabled neural decompilation, but the generated code is typically only semantically plausible.<n>We propose ICL4Decomp, a hybrid decompilation framework that leverages in-context learning (ICL) to guide LLMs toward generating re-executable source code.
arXiv Detail & Related papers (2025-11-03T17:21:39Z) - ReF Decompile: Relabeling and Function Call Enhanced Decompile [50.86228893636785]
The goal of decompilation is to convert compiled low-level code (e.g., assembly code) back into high-level programming languages.<n>This task supports various reverse engineering applications, such as vulnerability identification, malware analysis, and legacy software migration.
arXiv Detail & Related papers (2025-02-17T12:38:57Z) - Vulnerability Detection in Popular Programming Languages with Language Models [2.048226951354646]
This paper investigates the effectiveness of Language Models (LMs) for vulnerability detection in JavaScript, Java, Python, PHP, and Go.<n>We find that JavaScript exhibits the best performance, with considerably better and more practical detection capabilities compared to C/C++.
arXiv Detail & Related papers (2024-12-20T13:57:27Z) - CLNX: Bridging Code and Natural Language for C/C++ Vulnerability-Contributing Commits Identification [0.0]
Large Language Models (LLMs) have shown great promise in vulnerability identification.
We propose CodeLinguaNexus (CLNX) as a bridge facilitating communication between C/C++ programs and LLMs.
We evaluate CLNX on public datasets of 25,872 C/C++ functions with their commits.
arXiv Detail & Related papers (2024-09-11T16:49:46Z) - NoviCode: Generating Programs from Natural Language Utterances by Novices [59.71218039095155]
We present NoviCode, a novel NL Programming task which takes as input an API and a natural language description by a novice non-programmer.
We show that NoviCode is indeed a challenging task in the code synthesis domain, and that generating complex code from non-technical instructions goes beyond the current Text-to-Code paradigm.
arXiv Detail & Related papers (2024-07-15T11:26:03Z) - QParallel: Explicit Parallelism for Programming Quantum Computers [62.10004571940546]
We present a language extension for parallel quantum programming.
QParallel removes ambiguities concerning parallelism in current quantum programming languages.
We introduce a tool that guides programmers in the placement of parallel regions by identifying the subroutines that profit most from parallelization.
arXiv Detail & Related papers (2022-10-07T16:35:16Z) - Statement-Level Vulnerability Detection: Learning Vulnerability Patterns Through Information Theory and Contrastive Learning [31.15123852246431]
We propose a novel end-to-end deep learning-based approach to identify the vulnerability-relevant code statements of a specific function.
Inspired by the structures observed in real-world vulnerable code, we first leverage mutual information for learning a set of latent variables.
We then propose novel clustered spatial contrastive learning in order to further improve the representation learning.
arXiv Detail & Related papers (2022-09-20T00:46:20Z) - Natural Language to Code Translation with Execution [82.52142893010563]
Execution result--minimum Bayes risk decoding for program selection.
We show that it improves the few-shot performance of pretrained code models on natural-language-to-code tasks.
arXiv Detail & Related papers (2022-04-25T06:06:08Z) - Extending C++ for Heterogeneous Quantum-Classical Computing [56.782064931823015]
qcor is a language extension to C++ and compiler implementation that enables heterogeneous quantum-classical programming, compilation, and execution in a single-source context.
Our work provides a first-of-its-kind C++ compiler enabling high-level quantum kernel (function) expression in a quantum-language manner.
arXiv Detail & Related papers (2020-10-08T12:49:07Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.