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
- Confirm the port actually serves Neo4j's HTTP API
- Extend the fingerprint signatures used for body matching
- 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.