From b3c1f2ab489c22494900476426fd5cad9ba08cd1 Mon Sep 17 00:00:00 2001 From: Philippe Antoine Date: Tue, 16 Mar 2021 13:07:16 +0100 Subject: [PATCH] nfs: improve probing parser Checks credentials flavor is known --- rust/src/nfs/nfs.rs | 2 +- rust/src/nfs/types.rs | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/rust/src/nfs/nfs.rs b/rust/src/nfs/nfs.rs index 1dfa08bee9..5bbf8c82e4 100644 --- a/rust/src/nfs/nfs.rs +++ b/rust/src/nfs/nfs.rs @@ -1734,7 +1734,7 @@ pub fn nfs_probe(i: &[u8], direction: u8) -> i8 { rpc.program == 100003 && rpc.procedure <= NFSPROC3_COMMIT { - return 1; + return rpc_auth_type_known(rpc.creds_flavor); } else { return -1; } diff --git a/rust/src/nfs/types.rs b/rust/src/nfs/types.rs index d3f313a39d..c8ddfafc11 100644 --- a/rust/src/nfs/types.rs +++ b/rust/src/nfs/types.rs @@ -177,6 +177,14 @@ pub fn rpc_auth_type_string(auth_type: u32) -> String { }.to_string() } +pub fn rpc_auth_type_known(auth_type: u32) -> i8 { + // RPCAUTH_GSS is the maximum + if auth_type <= RPCAUTH_GSS { + return 1; + } + return -1; +} + /* http://www.iana.org/assignments/rpc-authentication-numbers/rpc-authentication-numbers.xhtml */ pub const RPCAUTH_OK: u32 = 0; // success/failed at remote end [RFC5531] pub const RPCAUTH_BADCRED: u32 = 1; // bad credential (seal broken) [RFC5531] -- 2.47.2