shadow1ng/fscan · error

service_not_identified

Error message

service_not_identified

What it means

Guard in testUnauthorizedAccess: an HTTP 200 response body did not contain the string 'neo4j', so the open endpoint is not confirmed to be Neo4j and is treated as an unidentified service instead of a valid unauthorized-access finding.

Source

Thrown at plugins/services/neo4j.go:177

	if err != nil {
		return nil
	}
	defer func() { _ = resp.Body.Close() }()

	if resp.StatusCode == 200 {
		body, err := readServiceHTTPBody(resp.Body)
		if err != nil {
			return &ScanResult{
				Success: false,
				Service: "neo4j",
				Error:   err,
			}
		}
		if !strings.Contains(strings.ToLower(string(body)), "neo4j") {
			return &ScanResult{
				Success: false,
				Service: "neo4j",
				Error:   fmt.Errorf("%s", i18n.Tr("service_not_identified", "Neo4j")),
			}
		}
		return &ScanResult{
			Type:    plugins.ResultTypeVuln,
			Success: true,
			Service: "neo4j",
			Banner:  i18n.GetText("service_unauthorized"),
		}
	}

	return nil
}

func (p *Neo4jPlugin) identifyService(ctx context.Context, info *common.HostInfo, session *common.ScanSession) *ScanResult {
	config := session.Config
	target := info.Target()
	baseURL := "http://" + info.Target()

View on GitHub (pinned to 95cc12e753)

Solutions

  1. Confirm the port actually serves Neo4j's HTTP API
  2. Extend the fingerprint signatures used for body matching
  3. Probe alternate Neo4j ports (7473/7474) if the service is elsewhere
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at plugins/services/neo4j.go:177 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/f512314e81afe5cf. Report an issue: GitHub.