Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segmentation Fault in Augeas 1.14.1 When Evaluating Expressions #848

Open
cla7aye15I4nd opened this issue Nov 3, 2024 · 0 comments
Open

Comments

@cla7aye15I4nd
Copy link

Description:

While using Augeas version 1.14.1, I encountered a segmentation fault caused by a read access violation in the eval_expr function within pathx.c. This issue arises when evaluating certain expressions, potentially leading to a crash.


Steps to Reproduce:

  1. Build Augeas with the OSS-Fuzz configuration.

  2. Execute the following command:

    ./augeas_api_fuzzer /path/to/crash-input
  3. The content of the crash input file (Base64 encoded):

    IHJlZ2V4cCgiWyIpYW5k/w==
    

ASan Output:

INFO: Running with entropic power schedule (0xFF, 100).
INFO: Seed: 3567902505
INFO: Loaded 1 modules   (16637 inline 8-bit counters): 16637 [0x56382e895590, 0x56382e89968d),
INFO: Loaded 1 PC tables (16637 PCs): 16637 [0x56382e899690,0x56382e8da660),
./augeas_api_fuzzer: Running 1 inputs 1 time(s) each.
Running: /path/to/crash-input
AddressSanitizer:DEADLYSIGNAL
=================================================================
==80175==ERROR: AddressSanitizer: SEGV on unknown address 0x50340000a4dc (pc 0x56382e6f9d79 bp 0x7ffc9d068290 sp 0x7ffc9d0681c0 T0)
==80175==The signal is caused by a READ memory access.
    #0 0x56382e6f9d79 in eval_expr /src/augeas/src/pathx.c:1517:31
    #1 0x56382e6f90cc in eval_binary /src/augeas/src/pathx.c:1164:5
    #2 0x56382e6f90cc in eval_expr /src/augeas/src/pathx.c:1499:9
    #3 0x56382e6e6590 in pathx_eval /src/augeas/src/pathx.c:2869:5
    #4 0x56382e6e6590 in pathx_symtab_define /src/augeas/src/pathx.c:3159:13
    #5 0x56382e6d1a88 in aug_defvar /src/augeas/src/augeas.c:900:18
    #6 0x56382e6c9abc in LLVMFuzzerTestOneInput /src/augeas/augeas_api_fuzzer.cc:53:2
    #7 0x56382e57e4d0 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:614:13
    #8 0x56382e569745 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:327:6
    #9 0x56382e56f1df in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:862:9
    #10 0x56382e59a482 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #11 0x7f2003fd4082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082)
    #12 0x56382e56192d in _start (/out/augeas_api_fuzzer+0xb792d)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /src/augeas/src/pathx.c:1517:31 in eval_expr
==80175==ABORTING

Additional Information:

  • Augeas Version: 1.14.1
  • Affected File: src/pathx.c
  • Function: eval_expr

Potential Impact:

This segmentation fault can be triggered by untrusted input, which may lead to denial of service or other unintended behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant