論文の概要: PinChecker: Identifying Unsound Safe Abstractions of Rust Pinning APIs
- arxiv url: http://arxiv.org/abs/2504.14500v1
- Date: Sun, 20 Apr 2025 05:45:58 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-04-30 00:12:21.294709
- Title: PinChecker: Identifying Unsound Safe Abstractions of Rust Pinning APIs
- Title(参考訳): PinChecker: Rust Pinning APIの安全でない抽象化を識別する
- Authors: Yuxuan Dai, Yang Feng,
- Abstract要約: 本稿では,APIのピン付けに関する重要な動作をモデル化する,新しい中間表現であるRPILを紹介する。
RPILにより誘導される合成駆動型違反検出ツールであるPinCheckerを実装した。
crates.ioの13の人気のあるRustライブラリに関する実験では、2つの確認済みバグが見つかった。
- 参考スコア(独自算出の注目度): 14.251447722365661
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: The pinning APIs of Rust language guarantee memory location stability for self-referential and asynchronous constructs, as long as used according to the pinning API contract. Rust ensures violations of such contract are impossible in regular safe code, but not in unsafe code where unsafe pinning APIs can be used. Library authors can encapsulate arbitrary unsafe code within regular library functions. These can be freely called in higher-level code without explicit warnings. Therefore, it is crucial to analyze library functions to rule out pinning API contract violations. Unfortunately, such testing relies on manual analysis by library authors, which is ineffective. Our goal is to develop a methodology that, given a library, attempts to construct programs that intentionally breach the pinning API contract by chaining library function calls, thereby verifying their soundness. We introduce RPIL, a novel intermediate representation that models functions' critical behaviors pertaining to pinning APIs. We implement PinChecker, a synthesis-driven violation detection tool guided by RPIL, which automatically synthesizes bug-revealing programs. Our experiments on 13 popular Rust libraries from crates.io found 2 confirmed bugs.
- Abstract(参考訳): Rust言語のピンニングAPIは、ピンニングAPI契約に従って使用する限り、自己参照および非同期コンストラクトのメモリ位置安定性を保証する。
Rustは、通常のセーフコードではそのような契約違反は不可能であるが、安全でないピンニングAPIを使用するアンセーフコードでは不可能である。
ライブラリの作者は、任意の安全でないコードを通常のライブラリ関数にカプセル化できる。
これらは明示的に警告することなく、高レベルのコードで自由に呼び出せる。
したがって、API契約違反の特定を除外するためには、ライブラリ機能を分析することが不可欠である。
残念ながら、このようなテストは図書館の著者による手作業による分析に依存しており、これは効果がない。
我々のゴールは,ライブラリを前提として,ライブラリ関数呼び出しの連鎖によってピンニングAPI契約を意図的に違反するプログラムを構築し,その健全性を検証する手法を開発することである。
本稿では,APIのピン付けに関する重要な動作をモデル化する,新しい中間表現であるRPILを紹介する。
我々はPinCheckerを実装した。PinCheckerはRPILによって誘導される合成駆動違反検出ツールで、バグ発見プログラムを自動的に合成する。
crates.ioの13の人気のあるRustライブラリに関する実験では、2つの確認済みバグが見つかった。
関連論文リスト
- CRUST-Bench: A Comprehensive Benchmark for C-to-safe-Rust Transpilation [63.23120252801889]
CRUST-Benchは100のCリポジトリのデータセットで、それぞれが安全なRustとテストケースで手書きのインターフェースとペアリングされている。
我々は、このタスクで最先端の大規模言語モデル(LLM)を評価し、安全で慣用的なRust生成が依然として難しい問題であることを確認した。
最高のパフォーマンスモデルであるOpenAI o1は、ワンショット設定で15タスクしか解決できない。
論文 参考訳(メタデータ) (2025-04-21T17:33:33Z) - Your Fix Is My Exploit: Enabling Comprehensive DL Library API Fuzzing with Large Language Models [49.214291813478695]
AIアプリケーションで広く使用されているディープラーニング(DL)ライブラリは、オーバーフローやバッファフリーエラーなどの脆弱性を含むことが多い。
従来のファジィングはDLライブラリの複雑さとAPIの多様性に悩まされている。
DLライブラリのためのLLM駆動ファジィ手法であるDFUZZを提案する。
論文 参考訳(メタデータ) (2025-01-08T07:07:22Z) - Fearless Unsafe. A More User-friendly Document for Unsafe Rust Programming Base on Refined Safety Properties [4.250147698839545]
人気の高いシステムレベルのプログラミング言語であるRustは、実行時の効率性とメモリ安全性を達成するという特徴から、広く注目を集めている。
Rustを採用する現実世界のプロジェクトが増えているため、プログラマが安全でないコードを書くのを助ける方法を理解することが大きな課題となっている。
私たちの観察によると、現在の標準ライブラリは多くの安全でないAPIを持っていますが、それらの記述は均一で、完全で、直感的ではありません。
論文 参考訳(メタデータ) (2024-12-09T07:00:31Z) - Commit0: Library Generation from Scratch [77.38414688148006]
Commit0は、AIエージェントにスクラッチからライブラリを書くよう促すベンチマークである。
エージェントには、ライブラリのAPIを概説する仕様文書と、インタラクティブなユニットテストスイートが提供されている。
Commit0はまた、モデルが生成したコードに対して静的解析と実行フィードバックを受け取る、インタラクティブな環境も提供する。
論文 参考訳(メタデータ) (2024-12-02T18:11:30Z) - A Study of Undefined Behavior Across Foreign Function Boundaries in Rust Libraries [2.359557447960552]
Rustは、他の言語との相互運用に頻繁に使用される。
Miriは、これらのモデルに対してアプリケーションを検証できる唯一の動的解析ツールである。
Miriは、外部機能のバグ発見をサポートしておらず、Rustエコシステムに重大な正当性ギャップがあることを示唆している。
論文 参考訳(メタデータ) (2024-04-17T18:12:05Z) - rCanary: Detecting Memory Leaks Across Semi-automated Memory Management Boundary in Rust [4.616001680122352]
Rustはコンパイル時の検証を通じてメモリ安全性を保証するシステムプログラミング言語である。
本稿では,半自動境界を越えたリークを検出する静的,非自動,完全自動モデルチェッカーであるrCanaryを提案する。
論文 参考訳(メタデータ) (2023-08-09T08:26:04Z) - Is unsafe an Achilles' Heel? A Comprehensive Study of Safety
Requirements in Unsafe Rust Programming [4.981203415693332]
Rustは、効率性とメモリ安全性を重視した、新しく、強く型付けされたプログラミング言語である。
標準ライブラリの現在の安全でないAPIドキュメントには、一貫性や不十分さなど、さまざまなバリエーションがあった。
Rustのセキュリティを強化するために、ユーザに従うべき安全要件の体系的な記述をリストアップするために、安全でないAPIドキュメントを提案する。
論文 参考訳(メタデータ) (2023-08-09T08:16:10Z) - Private-Library-Oriented Code Generation with Large Language Models [52.73999698194344]
本稿では,大規模言語モデル(LLM)をプライベートライブラリのコード生成に活用することに焦点を当てる。
プログラマがプライベートコードを書く過程をエミュレートする新しいフレームワークを提案する。
TorchDataEval、TorchDataComplexEval、MonkeyEval、BeatNumEvalの4つのプライベートライブラリベンチマークを作成しました。
論文 参考訳(メタデータ) (2023-07-28T07:43:13Z) - torchgfn: A PyTorch GFlowNet library [56.071033896777784]
torchgfnはPyTorchライブラリで、このニーズに対処することを目指している。
環境のためのシンプルなAPIと、サンプルと損失のための有用な抽象化を提供する。
論文 参考訳(メタデータ) (2023-05-24T00:20:59Z) - SequeL: A Continual Learning Library in PyTorch and JAX [50.33956216274694]
SequeLは継続学習のためのライブラリで、PyTorchとJAXフレームワークの両方をサポートする。
それは、正規化ベースのアプローチ、リプレイベースのアプローチ、ハイブリッドアプローチを含む、幅広い連続学習アルゴリズムのための統一インターフェースを提供する。
私たちはSequeLをオープンソースライブラリとしてリリースし、研究者や開発者が自身の目的で簡単にライブラリを実験し拡張することができます。
論文 参考訳(メタデータ) (2023-04-21T10:00:22Z) - Unsafe's Betrayal: Abusing Unsafe Rust in Binary Reverse Engineering
toward Finding Memory-safety Bugs via Machine Learning [20.68333298047064]
Rustは、プログラミングにおけるメモリセーフなバグを避けるために、メモリセーフなメカニズムを提供する。
Rustのユーザビリティを高めるアンセーフコードは、メモリセーフなバグを見つけるための明確な場所を提供する。
これらの安全でないスポットは、マシンラーニングを介してRustバイナリコードで識別可能である、と私たちは主張しています。
論文 参考訳(メタデータ) (2022-10-31T19:32:18Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。