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

  1. Check the server's auth settings; older/newer verifier types may need a different client
  2. Try a different authentication mode (e.g. password-based instead of O5LOGON)
  3. 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.