Fuzz introspector
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues
Report generation date: 2026-05-23

Project overview: libssh

High level conclusions

Reachability and coverage overview

Functions statically reachable by fuzzers
54.0%
893 / 1640
Cyclomatic complexity statically reachable by fuzzers
56.9%
6537 / 11431
Runtime code coverage of functions
63.0%
1026 / 1640

Warning: The number of runtime covered functions are larger than the number of reachable functions. This means that Fuzz Introspector found there are more functions covered at runtime than what is considered reachable based on the static analysis. This is a limitation in the analysis as anything covered at runtime is by definition reachable by the fuzzers.
This is likely due to a limitation in the static analysis. In this case, the count of functions covered at runtime is the true value, which means this is what should be considered "achieved" by the fuzzer.

Use the project functions table below to query all functions that were not covered at runtime.

Project functions overview

The following table shows data about each function in the project. The functions included in this table correspond to all functions that exist in the executables of the fuzzers. As such, there may be functions that are from third-party libraries.

For further technical details on the meaning of columns in the below table, please see the Glossary .

Func name Functions filename Args Function call depth Reached by Fuzzers Runtime reached by Fuzzers Combined reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzzer details

Fuzzer: ssh_privkey_fuzzer_nalloc

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 496 95.0%
gold [1:9] 4 0.76%
yellow [10:29] 1 0.19%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 21 4.02%
All colors 522 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
432 58 realloc call site: 00058 pki_openssh_import_privkey_blob
19 501 pki_private_key_from_base64 call site: 00501 ssh_key_free
18 8 _ssh_log call site: 00008 ssh_vlog
14 27 ssh_pki_import_privkey_base64 call site: 00027 ssh_pki_openssh_privkey_import
6 49 calloc call site: 00049 ssh_buffer_allocate_size
3 492 pki_private_key_from_base64 call site: 00492 pem_get_password
2 46 nalloc_fail call site: 00046 fprintf
1 56 realloc call site: 00056 __errno_location
1 496 pki_private_key_from_base64 call site: 00496 PEM_read_bio_PrivateKey

Runtime coverage analysis

Covered functions
32
Functions that are reachable but not covered
141
Reachable functions
155
Percentage of reachable functions covered
9.03%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/ssh_privkey_fuzzer.c 1
tests/fuzz/nallocinc.c 7
src/base64.c 6
src/pki.c 11
src/log.c 9
src/pki_container_openssh.c 4
src/buffer.c 19
src/string.c 7
src/bignum.c 1
src/pki_crypto.c 12
src/libcrypto.c 1
src/external/bcrypt_pbkdf.c 2
src/md_crypto.c 3
src/external/blowfish.c 6
src/wrapper.c 1

Fuzzer: ssh_known_hosts_fuzzer_nalloc

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 110 25.5%
gold [1:9] 12 2.78%
yellow [10:29] 8 1.85%
greenyellow [30:49] 3 0.69%
lawngreen 50+ 298 69.1%
All colors 431 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
18 17 _ssh_log call site: 00017 ssh_vlog
13 237 ssh_buffer_unpack_va call site: 00237 _ssh_log
11 218 ssh_buffer_unpack_va call site: 00218 ssh_buffer_get_ssh_string
8 36 ssh_strict_fopen call site: 00036 _ssh_log
7 371 ssh_key_cmp call site: 00371 ssh_string_cmp
6 121 hmac_init call site: 00121 EVP_sha256
4 262 pki_pubkey_build_rsa call site: 00262 BN_clear_free
3 251 ssh_buffer_unpack_va call site: 00251 strlen
3 318 pki_pubkey_build_ed25519 call site: 00318 _ssh_log
2 12 ssh_strict_fopen call site: 00012 ssh_strerror
2 84 ssh_buffer_new call site: 00084 buffer_shift
2 314 pki_pubkey_build_ed25519 call site: 00314 _ssh_log

Runtime coverage analysis

Covered functions
101
Functions that are reachable but not covered
90
Reachable functions
177
Percentage of reachable functions covered
49.15%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/ssh_known_hosts_fuzzer.c 1
tests/fuzz/nallocinc.c 7
src/knownhosts.c 7
src/misc.c 9
src/log.c 9
src/base64.c 4
src/buffer.c 19
src/libcrypto.c 4
src/match.c 3
src/pki.c 11
src/string.c 8
src/bignum.c 1
src/pki_crypto.c 6
src/init.c 2
src/threads/pthread.c 2
src/dh.c 1
src/socket.c 1
src/poll.c 1
src/threads.c 1
src/threads/libcrypto.c 1

Fuzzer: ssh_pubkey_fuzzer_nalloc

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 424 65.2%
gold [1:9] 29 4.46%
yellow [10:29] 41 6.30%
greenyellow [30:49] 24 3.69%
lawngreen 50+ 132 20.3%
All colors 650 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
207 310 pki_import_cert_buffer call site: 00310 pki_openssh_import_privkey_blob
104 531 pki_private_key_from_base64 call site: 00531 ssh_pki_export_privkey_to_pubkey
23 243 pki_import_pubkey_buffer call site: 00243 ssh_buffer_get_ssh_string
18 27 _ssh_log call site: 00027 ssh_vlog
12 162 ssh_pki_openssh_import call site: 00162 ssh_pki_import_pubkey_blob
5 47 ssh_pki_import_pubkey_file call site: 00047 _ssh_log
4 119 ssh_buffer_unpack_va call site: 00119 ssh_buffer_get_ssh_string
4 148 ssh_buffer_unpack_va call site: 00148 _ssh_log
4 224 pki_pubkey_build_rsa call site: 00224 BN_clear_free
4 522 pki_private_key_from_base64 call site: 00522 pem_get_password
3 56 ssh_pki_import_pubkey_file call site: 00056 _ssh_log
3 193 ssh_key_type_from_name call site: 00193 pki_import_cert_buffer

Runtime coverage analysis

Covered functions
75
Functions that are reachable but not covered
122
Reachable functions
179
Percentage of reachable functions covered
31.84%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/ssh_pubkey_fuzzer.c 1
src/misc.c 2
tests/fuzz/nallocinc.c 8
src/pki.c 15
src/log.c 9
src/pki_container_openssh.c 4
src/base64.c 4
src/buffer.c 19
src/string.c 8
src/bignum.c 1
src/pki_crypto.c 13
src/libcrypto.c 1
src/external/bcrypt_pbkdf.c 2
src/md_crypto.c 3
src/external/blowfish.c 6
src/wrapper.c 1

Fuzzer: ssh_client_config_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 467 47.3%
gold [1:9] 103 10.4%
yellow [10:29] 49 4.96%
greenyellow [30:49] 36 3.64%
lawngreen 50+ 332 33.6%
All colors 987 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
58 711 ssh_path_expand_internal call site: 00711 get_connection_hash
25 657 ssh_config_parse_line_internal call site: 00657 ssh_match_localnetwork
20 91 _ssh_log call site: 00091 _ssh_log
19 261 ssh_options_set call site: 00261 _ssh_set_error_invalid
19 422 ssh_options_set call site: 00422 ssh_options_set
18 942 ssh_config_parse_line_internal call site: 00942 ssh_options_set
16 320 ssh_options_set call site: 00320 _ssh_set_error_invalid
16 468 ssh_options_set call site: 00468 ssh_path_expand_tilde
15 121 crypto_free call site: 00121 ssh_key_clean
14 168 ssh_free call site: 00168 ssh_message_free
14 642 match_cidr_address_list call site: 00642 get_address_family
13 77 ssh_socket_close call site: 00077 ssh_poll_free

Runtime coverage analysis

Covered functions
122
Functions that are reachable but not covered
233
Reachable functions
337
Percentage of reachable functions covered
30.86%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/ssh_client_config_fuzzer.c 1
tests/fuzz/nallocinc.c 7
src/session.c 3
src/wrapper.c 4
src/socket.c 4
src/error.c 3
src/buffer.c 5
src/misc.c 30
src/agent.c 3
src/pki_context.c 3
src/channels.c 1
src/pcap.c 1
src/poll.c 5
src/log.c 12
src/pki.c 2
src/pki_crypto.c 1
src/string.c 4
src/dh_crypto.c 1
src/gzip.c 1
src/messages.c 1
src/auth.c 2
src/callbacks.c 1
src/options.c 4
src/config_parser.c 7
src/kex.c 6
src/token.c 7
src/config.c 22
src/match.c 8
src/md_crypto.c 4

Fuzzer: ssh_sshsig_fuzzer_nalloc

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 358 63.7%
gold [1:9] 37 6.58%
yellow [10:29] 27 4.80%
greenyellow [30:49] 11 1.95%
lawngreen 50+ 129 22.9%
All colors 562 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
251 300 sshsig_verify call site: 00300 ssh_pki_import_signature_blob
18 6 _ssh_log call site: 00006 ssh_vlog
18 173 ssh_pki_import_pubkey_blob call site: 00173 pki_import_cert_buffer
18 270 pki_key_clean call site: 00270 pki_import_pubkey_buffer
6 126 ssh_buffer_unpack_va call site: 00126 _ssh_log
4 99 ssh_buffer_unpack_va call site: 00099 ssh_buffer_get_ssh_string
4 202 pki_pubkey_build_rsa call site: 00202 BN_clear_free
4 262 pki_import_pubkey_buffer call site: 00262 ssh_buffer_get_ssh_string
3 241 pki_import_pubkey_buffer call site: 00241 ssh_buffer_get_ssh_string
3 257 pki_pubkey_build_ed25519 call site: 00257 _ssh_log
2 52 ssh_buffer_new call site: 00052 buffer_shift
2 91 ssh_buffer_unpack_va call site: 00091 ssh_buffer_get_u8

Runtime coverage analysis

Covered functions
69
Functions that are reachable but not covered
114
Reachable functions
165
Percentage of reachable functions covered
30.91%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/ssh_sshsig_fuzzer.c 1
tests/fuzz/nallocinc.c 7
src/pki.c 20
src/log.c 9
src/base64.c 4
src/buffer.c 27
src/string.c 9
src/bignum.c 3
src/pki_crypto.c 11
src/md_crypto.c 8
src/pki_ed25519_common.c 1

Fuzzer: ssh_bind_config_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 645 77.3%
gold [1:9] 16 1.91%
yellow [10:29] 18 2.15%
greenyellow [30:49] 9 1.07%
lawngreen 50+ 146 17.5%
All colors 834 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
519 121 realloc call site: 00121 ssh_pki_import_privkey_file
25 93 ssh_bind_config_parse_line call site: 00093 ssh_bind_options_set
21 734 ssh_bind_options_set call site: 00734 ssh_path_expand_tilde
12 758 ssh_bind_options_set call site: 00758 ssh_bind_options_set
10 641 ssh_bind_options_set call site: 00641 _ssh_log
6 6 calloc call site: 00006 nalloc_backtrace_exclude
4 75 ssh_strict_fopen call site: 00075 _ssh_log
4 84 ssh_strict_fopen call site: 00084 _ssh_log
3 20 ssh_log_function call site: 00020 ssh_log_custom
3 821 ssh_bind_config_parse_line call site: 00821 _ssh_log
2 29 current_timestring call site: 00029 strftime
2 32 ssh_log_stderr call site: 00032 fprintf

Runtime coverage analysis

Covered functions
64
Functions that are reachable but not covered
254
Reachable functions
300
Percentage of reachable functions covered
15.33%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/ssh_bind_config_fuzzer.c 1
tests/fuzz/nallocinc.c 7
src/bind.c 2
src/bind_config.c 6
src/log.c 10
src/error.c 3
src/config_parser.c 4
src/misc.c 6
src/options.c 5
src/pki.c 14
src/pki_container_openssh.c 4
src/base64.c 4
src/buffer.c 19
src/string.c 7
src/bignum.c 1
src/pki_crypto.c 14
src/libcrypto.c 1
src/external/bcrypt_pbkdf.c 2
src/md_crypto.c 3
src/external/blowfish.c 6
src/wrapper.c 1
src/kex.c 6
src/token.c 7

Fuzzer: ssh_sftp_attr_fuzzer_nalloc

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 137 39.5%
gold [1:9] 2 0.57%
yellow [10:29] 7 2.02%
greenyellow [30:49] 11 3.17%
lawngreen 50+ 189 54.6%
All colors 346 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
20 91 _ssh_log call site: 00091 _ssh_log
14 168 ssh_free call site: 00168 ssh_message_free
13 77 ssh_socket_close call site: 00077 ssh_poll_free
13 302 ssh_buffer_unpack_va call site: 00302 _ssh_log
8 60 ssh_free call site: 00060 ssh_channel_do_free
8 128 ssh_string_len call site: 00128 ssh_string_burn
7 290 ssh_buffer_unpack_va call site: 00290 ssh_buffer_get_ssh_string
6 121 crypto_free call site: 00121 ssh_key_clean
6 317 sftp_parse_attr_3 call site: 00317 sftp_parse_longname
4 145 crypto_free call site: 00145 deflateEnd
4 282 ssh_buffer_unpack_va call site: 00282 ssh_buffer_get_u8
2 22 ssh_buffer_new call site: 00022 buffer_shift

Runtime coverage analysis

Covered functions
86
Functions that are reachable but not covered
58
Reachable functions
126
Percentage of reachable functions covered
53.97%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/ssh_sftp_attr_fuzzer.c 2
tests/fuzz/nallocinc.c 7
src/session.c 3
src/wrapper.c 4
src/socket.c 4
src/error.c 2
src/buffer.c 16
src/misc.c 10
src/agent.c 3
src/pki_context.c 2
src/channels.c 1
src/pcap.c 1
src/poll.c 5
src/log.c 11
src/pki.c 2
src/pki_crypto.c 1
src/string.c 7
src/dh_crypto.c 1
src/gzip.c 1
src/messages.c 1
src/auth.c 2
src/callbacks.c 1
src/sftp_common.c 5
src/bignum.c 1
src/client.c 1
src/sftp.c 1

Fuzzer: ssh_server_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 1687 55.5%
gold [1:9] 21 0.69%
yellow [10:29] 20 0.65%
greenyellow [30:49] 34 1.11%
lawngreen 50+ 1276 42.0%
All colors 3038 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
233 1391 ssh_list_prepend call site: 01391 ssh_known_hosts_read_entries
181 1628 ssh_strict_fopen call site: 01628 ssh_send_kex
169 493 sha512_final call site: 00493 pki_openssh_import_privkey_blob
102 1288 ssh_packet_send call site: 01288 ssh_send_rekex
47 2963 libcrux_sha3_generic_keccak_portable_keccak1_ad call site: 02963 ssh_packet_send
38 1152 ssh_buffer_pack_va call site: 01152 _ssh_buffer_pack
32 843 ssh_bind_options_set call site: 00843 ssh_bind_set_algo
31 1046 pki_key_dup call site: 01046 ssh_key_free
29 799 ssh_find_all_matching call site: 00799 ssh_prefix_default_algos
26 458 ssh_pki_import_pubkey_blob call site: 00458 pki_private_key_decrypt
25 1834 packet_send2 call site: 01834 compress_buffer
24 2122 cipher_new call site: 02122 _ssh_log

Runtime coverage analysis

Covered functions
730
Functions that are reachable but not covered
324
Reachable functions
804
Percentage of reachable functions covered
59.7%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/ssh_server_fuzzer.c 2
tests/fuzz/nallocinc.c 11
src/bind.c 4
src/session.c 7
src/wrapper.c 10
src/socket.c 16
src/error.c 3
src/buffer.c 31
src/misc.c 38
src/agent.c 3
src/pki_context.c 3
src/channels.c 1
src/pcap.c 5
src/poll.c 21
src/log.c 12
src/pki.c 22
src/pki_crypto.c 18
src/string.c 11
src/dh_crypto.c 6
src/gzip.c 4
src/messages.c 1
src/auth.c 2
src/callbacks.c 2
src/options.c 9
src/pki_container_openssh.c 4
src/base64.c 4
src/bignum.c 3
src/libcrypto.c 7
src/external/bcrypt_pbkdf.c 2
src/md_crypto.c 20
src/external/blowfish.c 6
src/kex.c 19
src/token.c 7
src/server.c 4
src/client.c 3
src/getrandom_crypto.c 1
src/packet.c 10
src/knownhosts.c 11
src/config_parser.c 1
src/config.c 1
src/match.c 3
src/packet_crypt.c 1
src/dh.c 3
src/kdf.c 5
src/dh-gex.c 1
src/ecdh_crypto.c 4
src/curve25519.c 1
src/curve25519_crypto.c 1
src/sntrup761.c 3
src/external/sntrup761.c 24
src/hybrid_mlkem.c 1
src/mlkem_native.c 1
src/mlkem.c 1
src/external/libcrux_mlkem768_sha3.c 256

Fuzzer: ssh_client_fuzzer_nalloc

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 2892 67.0%
gold [1:9] 47 1.08%
yellow [10:29] 41 0.95%
greenyellow [30:49] 10 0.23%
lawngreen 50+ 1323 30.6%
All colors 4313 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
406 3246 ssh_pki_import_pubkey_blob call site: 03246 ssh_userauth_try_publickey
403 630 ssh_strict_fopen call site: 00630 ssh_config_parse
246 3946 ssh_signature_free call site: 03946 ssh_event_add_connector
237 3676 ssh_key_size_allowed_rsa call site: 03676 ssh_userauth_agent_publickey
114 1549 pki_import_cert_buffer call site: 01549 ssh_session_update_known_hosts
109 1801 pki_key_to_blob call site: 01801 ssh_userauth_publickey_auto
86 433 ssh_options_set call site: 00433 ssh_options_set
84 1145 ssh_connect call site: 01145 ssh_socket_connect_proxyjump
78 4219 ssh_disconnect call site: 04219 select_loop
74 3150 ssh_client_hybrid_mlkem_init call site: 03150 atomicio
52 2068 packet_send2 call site: 02068 ssh_pcap_context_write
48 1328 ssh_buffer_add_data call site: 01328 base64_to_bin

Runtime coverage analysis

Covered functions
597
Functions that are reachable but not covered
475
Reachable functions
998
Percentage of reachable functions covered
52.4%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/ssh_client_fuzzer.c 2
tests/fuzz/nallocinc.c 11
src/session.c 9
src/wrapper.c 10
src/socket.c 24
src/error.c 4
src/buffer.c 31
src/misc.c 40
src/agent.c 11
src/pki_context.c 3
src/channels.c 31
src/pcap.c 5
src/poll.c 26
src/log.c 13
src/pki.c 43
src/pki_crypto.c 22
src/string.c 12
src/dh_crypto.c 6
src/gzip.c 4
src/messages.c 1
src/auth.c 15
src/callbacks.c 6
src/options.c 6
src/config_parser.c 7
src/kex.c 19
src/token.c 7
src/config.c 23
src/client.c 7
src/init.c 1
src/threads/pthread.c 2
src/md_crypto.c 20
src/match.c 9
src/threads.c 1
src/connect.c 4
src/knownhosts.c 18
src/dh.c 4
src/base64.c 6
src/libcrypto.c 6
src/bignum.c 3
include/libssh/session.h 1
src/packet.c 10
src/getrandom_crypto.c 1
src/server.c 1
src/packet_crypt.c 1
src/kdf.c 5
src/dh-gex.c 1
src/ecdh_crypto.c 4
src/curve25519.c 1
src/curve25519_crypto.c 1
src/sntrup761.c 3
src/external/sntrup761.c 24
src/hybrid_mlkem.c 1
src/mlkem_native.c 1
src/mlkem.c 1
src/external/libcrux_mlkem768_sha3.c 256
src/pki_container_openssh.c 5
src/external/bcrypt_pbkdf.c 2
src/external/blowfish.c 6
src/pki_ed25519_common.c 1
src/connector.c 18

Fuzzer: ssh_scp_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 3023 65.8%
gold [1:9] 29 0.63%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1541 33.5%
All colors 4593 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
375 3076 ssh_config_parse_file call site: 03076 ssh_config_parse
191 3916 ssh_userauth_get_response call site: 03916 ssh_userauth_agent_publickey
141 3558 ssh_connect call site: 03558 ssh_userauth_publickey_auto
105 4287 ssh_channel_send_eof call site: 04287 ssh_event_add_connector
89 1291 ssh_options_set call site: 01291 ssh_options_set
85 537 pki_import_privkey_buffer call site: 00537 pki_buffer_unpack_sk_priv_data
85 1547 hmac_final call site: 01547 ssh_pki_import_pubkey_base64
81 3464 ssh_connect call site: 03464 ssh_socket_connect_proxyjump
66 456 pki_private_key_decrypt call site: 00456 _ssh_buffer_unpack
62 997 ssh_string_copy call site: 00997 ssh_key_free
62 2259 ssh_curve25519_init call site: 02259 ssh_packet_send
52 1753 packet_send2 call site: 01753 ssh_pcap_context_write

Runtime coverage analysis

Covered functions
817
Functions that are reachable but not covered
476
Reachable functions
1042
Percentage of reachable functions covered
54.32%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
tests/fuzz/ssh_scp_fuzzer.c 2
tests/fuzz/nallocinc.c 11
tests/fuzz/ssh_server_mock.c 2
src/bind.c 4
src/session.c 9
src/wrapper.c 10
src/socket.c 24
src/error.c 4
src/buffer.c 31
src/misc.c 43
src/agent.c 11
src/pki_context.c 3
src/channels.c 32
src/pcap.c 5
src/poll.c 26
src/log.c 12
src/pki.c 43
src/pki_crypto.c 22
src/string.c 12
src/dh_crypto.c 6
src/gzip.c 4
src/messages.c 1
src/auth.c 15
src/callbacks.c 6
src/options.c 10
src/pki_container_openssh.c 5
src/base64.c 6
src/bignum.c 3
src/libcrypto.c 7
src/external/bcrypt_pbkdf.c 2
src/md_crypto.c 20
src/external/blowfish.c 6
src/kex.c 19
src/token.c 7
src/server.c 4
src/client.c 8
src/packet.c 10
src/getrandom_crypto.c 1
src/knownhosts.c 18
src/config_parser.c 7
src/config.c 23
src/match.c 9
src/packet_crypt.c 1
src/dh.c 4
src/kdf.c 5
src/dh-gex.c 1
src/ecdh_crypto.c 4
src/curve25519.c 1
src/curve25519_crypto.c 1
src/sntrup761.c 3
src/external/sntrup761.c 24
src/hybrid_mlkem.c 1
src/mlkem_native.c 1
src/mlkem.c 1
src/external/libcrux_mlkem768_sha3.c 256
src/init.c 1
src/threads/pthread.c 2
src/threads.c 1
src/connect.c 4
include/libssh/session.h 1
src/pki_ed25519_common.c 1
src/connector.c 18
src/scp.c 22

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

The following table shows a list of functions that are optimal targets. Optimal targets are identified by finding the functions that in combination, yield a high code coverage.

Func name Functions filename Arg count Args Function depth hitcount instr count bb count cyclomatic complexity Reachable functions Incoming references total cyclomatic complexity Unreached complexity
ssh_packet_client_hybrid_mlkem_reply /src/libssh/src/hybrid_mlkem.c 4 ['N/A', 'char', 'N/A', 'N/A'] 33 0 394 40 17 836 0 3704 402
ssh_packet_userauth_request /src/libssh/src/messages.c 4 ['N/A', 'char', 'N/A', 'N/A'] 39 0 898 187 54 738 0 3902 295
ssh_packet_socket_callback /src/libssh/src/packet.c 3 ['N/A', 'size_t', 'N/A'] 31 0 989 135 48 694 0 3487 198
ssh_server_connection_callback /src/libssh/src/server.c 1 ['N/A'] 33 0 491 85 25 704 0 3493 170
sftp_init /src/libssh/src/sftp.c 1 ['N/A'] 29 0 514 83 26 745 0 3708 169
ssh_channel_request_pty /src/libssh/src/channels.c 1 ['N/A'] 30 0 15 3 2 719 0 3598 163
process_readdir /src/libssh/src/sftpserver.c 1 ['N/A'] 26 0 236 34 13 728 0 3610 122
ssh_packet_server_sntrup761x25519_init /src/libssh/src/sntrup761.c 4 ['N/A', 'char', 'N/A', 'N/A'] 32 0 398 64 24 739 0 3691 121
ssh_packet_server_dhgex_request /src/libssh/src/dh-gex.c 4 ['N/A', 'char', 'N/A', 'N/A'] 22 0 284 51 18 688 0 3376 97
ssh_pki_export_privkey_file /src/libssh/src/pki.c 5 ['N/A', 'N/A', 'N/A', 'N/A', 'N/A'] 14 0 27 3 2 126 0 582 89

Implementing fuzzers that target the above functions will improve reachability such that it becomes:

Functions statically reachable by fuzzers
72.0%
1178 / 1640
Cyclomatic complexity statically reachable by fuzzers
73.0%
8305 / 11431

All functions overview

If you implement fuzzers for these functions, the status of all functions in the project will be:

Func name Functions filename Args Function call depth Reached by Fuzzers Runtime reached by Fuzzers Combined reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzz engine guidance

This sections provides heuristics that can be used as input to a fuzz engine when running a given fuzz target. The current focus is on providing input that is usable by libFuzzer.

tests/fuzz/ssh_privkey_fuzzer.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['realloc', 'pki_private_key_from_base64', '_ssh_log', 'ssh_pki_import_privkey_base64', 'calloc', 'nalloc_fail']

tests/fuzz/ssh_known_hosts_fuzzer.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['_ssh_log', 'ssh_buffer_unpack_va', 'ssh_strict_fopen', 'ssh_key_cmp', 'hmac_init', 'pki_pubkey_build_rsa', 'pki_pubkey_build_ed25519']

tests/fuzz/ssh_pubkey_fuzzer.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['pki_import_cert_buffer', 'pki_private_key_from_base64', 'pki_import_pubkey_buffer', '_ssh_log', 'ssh_pki_openssh_import', 'ssh_pki_import_pubkey_file', 'ssh_buffer_unpack_va', 'pki_pubkey_build_rsa']

tests/fuzz/ssh_client_config_fuzzer.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['ssh_path_expand_internal', 'ssh_config_parse_line_internal', '_ssh_log', 'ssh_options_set', 'crypto_free', 'ssh_free']

tests/fuzz/ssh_sshsig_fuzzer.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['sshsig_verify', '_ssh_log', 'ssh_pki_import_pubkey_blob', 'pki_key_clean', 'ssh_buffer_unpack_va', 'pki_pubkey_build_rsa', 'pki_import_pubkey_buffer', 'pki_pubkey_build_ed25519']

tests/fuzz/ssh_bind_config_fuzzer.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['realloc', 'ssh_bind_config_parse_line', 'ssh_bind_options_set', 'calloc', 'ssh_strict_fopen', 'ssh_log_function']

tests/fuzz/ssh_sftp_attr_fuzzer.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['_ssh_log', 'ssh_free', 'ssh_socket_close', 'ssh_buffer_unpack_va', 'ssh_string_len', 'crypto_free', 'sftp_parse_attr_3']

tests/fuzz/ssh_server_fuzzer.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['ssh_list_prepend', 'ssh_strict_fopen', 'sha512_final', 'ssh_packet_send', 'libcrux_sha3_generic_keccak_portable_keccak1_ad', 'ssh_buffer_pack_va', 'ssh_bind_options_set', 'pki_key_dup', 'ssh_find_all_matching', 'ssh_pki_import_pubkey_blob']

tests/fuzz/ssh_client_fuzzer.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['ssh_pki_import_pubkey_blob', 'ssh_strict_fopen', 'ssh_signature_free', 'ssh_key_size_allowed_rsa', 'pki_import_cert_buffer', 'pki_key_to_blob', 'ssh_options_set', 'ssh_connect', 'ssh_disconnect', 'ssh_client_hybrid_mlkem_init']

tests/fuzz/ssh_scp_fuzzer.c

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['ssh_config_parse_file', 'ssh_userauth_get_response', 'ssh_connect', 'ssh_channel_send_eof', 'ssh_options_set', 'pki_import_privkey_buffer', 'hmac_final', 'pki_private_key_decrypt', 'ssh_string_copy']

Runtime coverage analysis

This section shows analysis of runtime coverage data.

For futher technical details on how this section is generated, please see the Glossary .

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
ssh_dh_init 36 19 52.77% ['ssh_known_hosts_fuzzer_nalloc', 'ssh_sshsig_fuzzer_nalloc', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_privkey_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer']
pki_private_key_from_base64 77 40 51.94% ['ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_privkey_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer']
hmac_init 37 20 54.05% ['ssh_server_fuzzer', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
ssh_key_cmp 50 17 34.0% ['ssh_server_fuzzer', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
pki_pubkey_build_rsa 42 21 50.0% ['ssh_known_hosts_fuzzer_nalloc', 'ssh_sshsig_fuzzer_nalloc', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer', 'ssh_client_config_fuzzer', 'ssh_privkey_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer']
ssh_config_make_absolute 41 19 46.34% ['ssh_client_config_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_bind_config_fuzzer']
ssh_config_convtime 51 13 25.49% ['ssh_client_config_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_bind_config_fuzzer']
match_cidr_address_list 168 59 35.11% ['ssh_client_config_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_bind_config_fuzzer']
ssh_path_expand_internal 179 50 27.93% ['ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer']
ssh_options_set 789 286 36.24% ['ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer']
ssh_socket_close 31 15 48.38% ['ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_server_fuzzer']
ssh_bind_options_set 361 168 46.53% ['ssh_scp_fuzzer', 'ssh_client_config_fuzzer', 'ssh_server_fuzzer', 'ssh_bind_config_fuzzer']
ssh_bind_accept_fd 127 46 36.22% ['ssh_server_fuzzer', 'ssh_scp_fuzzer']
ssh_channel_new 44 22 50.0% ['ssh_server_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
channel_default_bufferize 45 18 40.0% ['ssh_server_fuzzer', 'ssh_scp_fuzzer']
ssh_curve25519_init 50 25 50.0% ['ssh_server_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
ssh_retrieve_dhgroup 51 15 29.41% ['ssh_server_fuzzer']
libcrux_sha3_generic_keccak_portable_keccak1_96 31 15 48.38% ['ssh_server_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
ssh_packet_server_hybrid_mlkem_init 257 140 54.47% ['ssh_server_fuzzer', 'ssh_scp_fuzzer']
sshkdf_derive_key 73 25 34.24% ['ssh_server_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
ssh_mac_ctx_init 35 19 54.28% ['ssh_server_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
ssh_send_kex 89 48 53.93% ['ssh_server_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
ssh_hashbufout_add_cookie 31 17 54.83% ['ssh_server_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
ssh_message_queue 35 18 51.42% ['ssh_server_fuzzer', 'ssh_scp_fuzzer']
ssh_execute_server_request 243 90 37.03% ['ssh_server_fuzzer', 'ssh_scp_fuzzer']
ssh_msg_userauth_build_digest 53 28 52.83% ['ssh_server_fuzzer']
ssh_packet_send 66 28 42.42% ['ssh_server_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
ssh_packet_pong 45 13 28.88% ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc']
pki_key_dup_common_init 43 15 34.88% ['ssh_scp_fuzzer', 'ssh_server_fuzzer', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_fuzzer_nalloc']
ssh_key_signature_to_char 33 16 48.48% ['ssh_scp_fuzzer', 'ssh_server_fuzzer', 'ssh_sshsig_fuzzer_nalloc', 'ssh_client_fuzzer_nalloc']
ssh_pki_import_privkey_file 61 32 52.45% ['ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer']
ssh_pki_export_signature_blob 54 26 48.14% ['ssh_server_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
pki_key_dup 221 89 40.27% ['ssh_scp_fuzzer', 'ssh_server_fuzzer', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_fuzzer_nalloc']
pki_key_to_blob 335 126 37.61% ['ssh_server_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
ssh_get_key_params 44 23 52.27% ['ssh_server_fuzzer', 'ssh_scp_fuzzer']
ssh_auth_reply_default 44 13 29.54% ['ssh_server_fuzzer']
ssh_channel_free 38 14 36.84% ['ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
ssh_connect 117 60 51.28% ['ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
ssh_packet_client_ecdh_reply 45 23 51.11% ['ssh_client_fuzzer_nalloc']
ssh_client_select_hostkeys 70 27 38.57% ['ssh_server_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
revert_kex_callbacks 45 4 8.888% ['ssh_client_fuzzer_nalloc']
ssh_known_hosts_get_algorithms_names 71 25 35.21% ['ssh_server_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
ssh_options_apply 174 70 40.22% ['ssh_server_fuzzer', 'ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
ssh_packet_client_sntrup761x25519_reply 64 32 50.0% ['ssh_client_fuzzer_nalloc']
ssh_userauth_get_response 42 13 30.95% ['ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
grow_window 42 19 45.23% ['ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
channel_write_common 121 51 42.14% ['ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
ssh_service_request 42 23 54.76% ['ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
evp_cipher_init 42 16 38.09% ['ssh_scp_fuzzer']
ssh_quote_file_name 92 34 36.95% ['ssh_scp_fuzzer']
ssh_options_parse_config 48 26 54.16% ['ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc']
pki_import_privkey_buffer 165 26 15.75% ['ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_privkey_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer']
pki_private_key_decrypt 103 16 15.53% ['ssh_scp_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_privkey_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer']
ssh_scp_new 38 17 44.73% ['ssh_scp_fuzzer']
ssh_scp_read_string 32 15 46.87% ['ssh_scp_fuzzer']
ssh_scp_pull_request 97 33 34.02% ['ssh_scp_fuzzer']
ssh_scp_read 53 10 18.86% ['ssh_scp_fuzzer']

Files and Directories in report

This section shows which files and directories are considered in this report. The main reason for showing this is fuzz introspector may include more code in the reasoning than is desired. This section helps identify if too many files/directories are included, e.g. third party code, which may be irrelevant for the threat model. In the event too much is included, fuzz introspector supports a configuration file that can exclude data from the report. See the following link for more information on how to create a config file: link

Files in report

Source file Reached by Covered by
[] []
/src/libssh/src/threads/libcrypto.c ['ssh_known_hosts_fuzzer_nalloc'] ['ssh_known_hosts_fuzzer_nalloc']
/src/libssh/src/mlkem_native.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/tests/fuzz/ssh_known_hosts_fuzzer.c ['ssh_known_hosts_fuzzer_nalloc'] ['ssh_known_hosts_fuzzer_nalloc']
/src/libssh/src/pki_crypto.c ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sshsig_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_sshsig_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/packet_cb.c [] []
/src/libssh/src/sftp.c ['ssh_sftp_attr_fuzzer_nalloc'] ['ssh_sftp_attr_fuzzer_nalloc']
/src/libssh/src/sntrup761.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc']
/src/libssh/src/hybrid_mlkem.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/channels.c ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/external/bcrypt_pbkdf.c ['ssh_privkey_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] []
/src/libssh/src/pki_context.c ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/kex.c ['ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/misc.c ['ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/md_crypto.c ['ssh_privkey_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sshsig_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/gzip.c ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/mlkem.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/tests/fuzz/ssh_server_mock.c ['ssh_scp_fuzzer'] ['ssh_scp_fuzzer']
/src/libssh/src/server.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/pki_container_openssh.c ['ssh_privkey_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_pubkey_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/match.c ['ssh_known_hosts_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_known_hosts_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/external/libcrux_mlkem768_sha3.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/dh_crypto.c ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/auth.c ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/string.c ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sshsig_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sshsig_fuzzer_nalloc', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/config_parser.c ['ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/tests/fuzz/ssh_privkey_fuzzer.c ['ssh_privkey_fuzzer_nalloc'] ['ssh_privkey_fuzzer_nalloc']
/src/libssh/src/wrapper.c ['ssh_privkey_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/session.c ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/ecdh_crypto.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc']
/src/libssh/tests/fuzz/nallocinc.c ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sshsig_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sshsig_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/threads/pthread.c ['ssh_known_hosts_fuzzer_nalloc', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_known_hosts_fuzzer_nalloc', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/callbacks.c ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/bind_config.c ['ssh_bind_config_fuzzer'] ['ssh_bind_config_fuzzer']
/src/libssh/src/connector.c ['ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] []
/src/libssh/src/kdf.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/pcap.c ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] []
/src/libssh/src/token.c ['ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/log.c ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sshsig_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sshsig_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/dh.c ['ssh_known_hosts_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_known_hosts_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/error.c ['ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/tests/fuzz/ssh_bind_config_fuzzer.c ['ssh_bind_config_fuzzer'] ['ssh_bind_config_fuzzer']
/src/libssh/src/config.c ['ssh_client_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_client_config_fuzzer', 'ssh_scp_fuzzer']
/src/libssh/src/buffer.c ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sshsig_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sshsig_fuzzer_nalloc', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/libcrypto.c ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/include/libssh/session.h ['ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] []
/src/libssh/src/curve25519_crypto.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/tests/fuzz/ssh_sftp_attr_fuzzer.c ['ssh_sftp_attr_fuzzer_nalloc'] ['ssh_sftp_attr_fuzzer_nalloc']
/src/libssh/include/libssh/sftp_priv.h [] []
/src/libssh/tests/fuzz/ssh_pubkey_fuzzer.c ['ssh_pubkey_fuzzer_nalloc'] ['ssh_pubkey_fuzzer_nalloc']
/src/libssh/src/external/blowfish.c ['ssh_privkey_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] []
/src/libssh/src/messages.c ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_scp_fuzzer']
/src/libssh/src/scp.c ['ssh_scp_fuzzer'] ['ssh_scp_fuzzer']
/src/libssh/src/agent.c ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/tests/fuzz/ssh_client_config_fuzzer.c ['ssh_client_config_fuzzer'] ['ssh_client_config_fuzzer']
/src/libssh/src/bind.c ['ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_scp_fuzzer'] ['ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_scp_fuzzer']
/src/libssh/src/socket.c ['ssh_known_hosts_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_known_hosts_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/getrandom_crypto.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/crypto_common.c [] []
/src/libssh/src/packet_crypt.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/threads.c ['ssh_known_hosts_fuzzer_nalloc', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_known_hosts_fuzzer_nalloc', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/external/sntrup761.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc']
/src/libssh/src/bignum.c ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_sshsig_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_sshsig_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc']
/src/libssh/src/base64.c ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_sshsig_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_sshsig_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/tests/fuzz/ssh_sshsig_fuzzer.c ['ssh_sshsig_fuzzer_nalloc'] ['ssh_sshsig_fuzzer_nalloc']
/src/libssh/src/pki.c ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sshsig_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_privkey_fuzzer_nalloc', 'ssh_known_hosts_fuzzer_nalloc', 'ssh_pubkey_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sshsig_fuzzer_nalloc', 'ssh_bind_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/poll.c ['ssh_known_hosts_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_known_hosts_fuzzer_nalloc', 'ssh_client_config_fuzzer', 'ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/sftp_common.c ['ssh_sftp_attr_fuzzer_nalloc'] ['ssh_sftp_attr_fuzzer_nalloc']
/src/libssh/src/pki_ed25519_common.c ['ssh_sshsig_fuzzer_nalloc', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_scp_fuzzer']
/src/libssh/src/ttyopts.c [] []
/src/libssh/tests/fuzz/ssh_client_fuzzer.c ['ssh_client_fuzzer_nalloc'] ['ssh_client_fuzzer_nalloc']
/src/libssh/src/curve25519.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/dh-gex.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc']
/src/libssh/src/packet.c ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/tests/fuzz/ssh_server_fuzzer.c ['ssh_server_fuzzer'] ['ssh_server_fuzzer']
/src/libssh/src/client.c ['ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_sftp_attr_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/knownhosts.c ['ssh_known_hosts_fuzzer_nalloc', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_known_hosts_fuzzer_nalloc', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/tests/fuzz/ssh_scp_fuzzer.c ['ssh_scp_fuzzer'] ['ssh_scp_fuzzer']
/src/libssh/src/connect.c ['ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] []
/src/libssh/src/options.c ['ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_client_config_fuzzer', 'ssh_bind_config_fuzzer', 'ssh_server_fuzzer', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/sftpserver.c [] []
/src/libssh/src/init.c ['ssh_known_hosts_fuzzer_nalloc', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer'] ['ssh_known_hosts_fuzzer_nalloc', 'ssh_client_fuzzer_nalloc', 'ssh_scp_fuzzer']
/src/libssh/src/ecdh.c [] []

Directories in report

Directory
/src/libssh/src/external/
/src/libssh/src/threads/
/src/libssh/src/
/src/libssh/tests/fuzz/
/src/libssh/include/libssh/