shadow1ng/fscan · error
unsupported oracle verifier type
Error message
unsupported oracle verifier type
What it means
Raised during Oracle session-key derivation when auth.verifierType is not one of the supported values (2361, 6949, 18453); the server negotiated an authentication verifier algorithm this client cannot derive keys for.
Source
Thrown at plugins/services/oracle_raw.go:1986
hash := md5.New()
key1 := auth.serverSessKey
key2 := auth.clientSessKey
start := 16
if len(nego.serverCompileTimeCaps) > 4 && nego.serverCompileTimeCaps[4]&32 != 0 {
var keyBuffer string
var retLen int
switch auth.verifierType {
case 2361:
keyBuffer = fmt.Sprintf("%X", append(key2[:len(key2)/2], key1[:len(key1)/2]...))
retLen = 16
case 6949:
keyBuffer = fmt.Sprintf("%X", append(key2[:24], key1[:24]...))
retLen = 24
case 18453:
keyBuffer = fmt.Sprintf("%X", append(key2, key1...))
retLen = 32
default:
return nil, errors.New("unsupported oracle verifier type")
}
df2key, err := hex.DecodeString(auth.pbkdf2ChkSalt)
if err != nil {
return nil, err
}
return oracleGenerateSpeedyKey(df2key, []byte(keyBuffer), auth.pbkdf2SderCount)[:retLen], nil
}
switch auth.verifierType {
case 2361:
buf := make([]byte, 16)
for i := 0; i < 16; i++ {
buf[i] = key1[i+start] ^ key2[i+start]
}
_, _ = hash.Write(buf)
return hash.Sum(nil), nil
case 6949:
buf := make([]byte, 24)
for i := 0; i < 24; i++ {View on GitHub (pinned to 95cc12e753)
Solutions
- Check the server's auth settings; older/newer verifier types may need a different client
- Try a different authentication mode (e.g. password-based instead of O5LOGON)
- Skip the credential test for this server version
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at plugins/services/oracle_raw.go:1986 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of shadow1ng/fscan@95cc12e753 (2026-09-06).
Data as JSON: /api/errors/2859c24b40f81651.
Report an issue: GitHub.