Skip to main content

Vulnerability Ontology

Cybersecurity
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 01 October 2026
Audio Overview
FLOW ALGEBRA
Vulnerability Ontology
Kireth Semantic Research Archive

PAGE:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/cybersecurity/vulnerability-ontology.html

AUTHORS:
Mark Anthony Higgins — Sky (Recursive AI)

FLOW "VulnerabilityOntology" v4.0

# ---------- DOMAIN ----------
DOMAIN := ComputingOntology
SUBDOMAIN := Cybersecurity
ONTOLOGY := VulnerabilityOntology

# ---------- PRIMARY ENTITY ----------
ENTITY Vulnerability {
    definition:
        "A weakness, flaw, exposure or security deficiency in a system,
         component, configuration, process or control that may be exploited
         or otherwise contribute to compromise of a protected asset.";

    objectives_of_analysis: [
        Discovery,
        Classification,
        Assessment,
        Prioritisation,
        Mitigation,
        Verification
    ];
}

# ---------- CORE ENTITIES ----------
VulnerabilityType := {
    SoftwareVulnerability,
    ConfigurationVulnerability,
    AuthenticationVulnerability,
    AuthorisationVulnerability,
    CryptographicVulnerability,
    NetworkVulnerability,
    DesignVulnerability,
    ProcessVulnerability
};

AffectedAsset := {
    Application,
    OperatingSystem,
    Library,
    Service,
    Device,
    Endpoint,
    Server,
    Network,
    CloudResource,
    SecurityControl
};

VulnerabilityState := {
    Unknown,
    Discovered,
    Confirmed,
    Assessed,
    Prioritised,
    Mitigated,
    Remediated,
    Accepted,
    Closed
};

# ---------- FUNDAMENTAL RELATIONSHIPS ----------
Vulnerability EXISTS_IN AffectedAsset;
Threat MAY_EXPLOIT Vulnerability;
Exploit TARGETS Vulnerability;
Vulnerability MAY_ENABLE SecurityImpact;
SecurityControl MITIGATES Vulnerability;
Patch MAY_REMEDIATE SoftwareVulnerability;
SecureConfiguration MAY_REMEDIATE ConfigurationVulnerability;

Vulnerability CONTRIBUTES_TO Risk;
Risk APPLIES_TO AffectedAsset;

# ---------- VULNERABILITY LIFECYCLE ----------
VulnerabilityLifecycle :=
    Discover
    -> Validate
    -> Classify
    -> Assess
    -> Prioritise
    -> Treat
    -> Verify
    -> Monitor
    -> Close;

Discover(Vulnerability) ->
    VulnerabilityState := Discovered;

Validate(Vulnerability) ->
    VulnerabilityState := Confirmed;

# ---------- DISCOVERY ----------
DiscoveryMethod := {
    SecurityTesting,
    VulnerabilityScanning,
    CodeReview,
    PenetrationTesting,
    ConfigurationReview,
    ThreatIntelligence,
    VendorAdvisory,
    Research
};

DiscoveryMethod MAY_IDENTIFY Vulnerability;

DiscoveryEvidence MAY_INCLUDE {
    ScannerFinding,
    TestResult,
    CodeEvidence,
    ConfigurationEvidence,
    AdvisoryReference
};

# ---------- VALIDATION ----------
Validation :=
    ConfirmAffectedAsset
    + ConfirmWeakness
    + ConfirmConditions
    + RemoveFalsePositive;

IF Finding HAS_INSUFFICIENT_EVIDENCE
THEN VulnerabilityStatus := NeedsReview;

IF Finding VALIDATED
THEN VulnerabilityState := Confirmed;

# ---------- CLASSIFICATION ----------
VulnerabilityClassification :=
    f(
        WeaknessType,
        AffectedComponent,
        AttackVector,
        RequiredConditions,
        SecurityImpact
    );

SoftwareVulnerability MAY_INCLUDE {
    InputValidationWeakness,
    MemorySafetyWeakness,
    LogicWeakness,
    DependencyWeakness
};

ConfigurationVulnerability MAY_INCLUDE {
    InsecureDefault,
    ExcessiveExposure,
    WeakPermission,
    UnnecessaryService,
    IncorrectSecuritySetting
};

# ---------- EXPLOITABILITY ----------
Exploitability :=
    f(
        Reachability,
        AttackComplexity,
        RequiredPrivilege,
        RequiredInteraction,
        ExistingExploitConditions
    );

IF Vulnerability NOT_REACHABLE
THEN PracticalExploitability := DECREASE;

IF ExploitConditions EASY
THEN PracticalExploitability := INCREASE;

# ---------- SECURITY IMPACT ----------
SecurityImpact := {
    ConfidentialityImpact,
    IntegrityImpact,
    AvailabilityImpact,
    AuthenticityImpact,
    PrivilegeImpact
};

SuccessfulExploitation MAY_CAUSE SecurityImpact;

IF Vulnerability ENABLES UnauthorisedDisclosure
THEN ConfidentialityImpact := true;

IF Vulnerability ENABLES UnauthorisedModification
THEN IntegrityImpact := true;

IF Vulnerability ENABLES ServiceDisruption
THEN AvailabilityImpact := true;

# ---------- RISK ----------
VulnerabilityRisk :=
    f(
        AssetCriticality,
        Exploitability,
        ThreatLikelihood,
        SecurityImpact,
        ExistingControls
    );

InherentVulnerabilityRisk :=
    VulnerabilityRisk BEFORE Mitigation;

ResidualVulnerabilityRisk :=
    VulnerabilityRisk AFTER Mitigation;

IF EffectiveMitigation APPLIED
THEN ResidualVulnerabilityRisk := DECREASE;

# ---------- PRIORITISATION ----------
Priority :=
    f(
        Severity,
        Exploitability,
        AssetCriticality,
        Exposure,
        ThreatEvidence,
        BusinessImpact
    );

IF Vulnerability AFFECTS CriticalAsset
THEN Priority := INCREASE;

IF ActiveExploitationEvidence EXISTS
THEN Priority := INCREASE;

IF Vulnerability InternetReachable
THEN ExposurePriority := INCREASE;

# ---------- TREATMENT ----------
VulnerabilityTreatment := {
    Remediate,
    Mitigate,
    Avoid,
    Accept,
    Transfer
};

Remediation MAY_INCLUDE {
    Patch,
    Upgrade,
    CodeChange,
    ConfigurationChange,
    ComponentReplacement
};

Mitigation MAY_INCLUDE {
    AccessRestriction,
    NetworkSegmentation,
    CompensatingControl,
    FeatureDisablement,
    Monitoring
};

# ---------- PATCHING ----------
Patch ADDRESSES Vulnerability;

PatchLifecycle :=
    IdentifyPatch
    -> ValidateApplicability
    -> TestPatch
    -> DeployPatch
    -> VerifyPatch
    -> Monitor;

IF PatchSuccessfullyRemovesWeakness
THEN VulnerabilityState := Remediated;

# ---------- COMPENSATING CONTROL ----------
CompensatingControl REDUCES ExploitabilityOrImpact;
CompensatingControl DOES_NOT_NECESSARILY RemoveVulnerability;

IF Vulnerability REMAINS
AND CompensatingControl EFFECTIVE
THEN VulnerabilityState := Mitigated;

# ---------- VERIFICATION ----------
VerificationMethod := {
    Rescan,
    Retest,
    CodeReview,
    ConfigurationReview,
    FunctionalValidation
};

VerificationMethod CONFIRMS TreatmentOutcome;

IF Verification PASSES
AND WeaknessNoLongerPresent
THEN VulnerabilityState := Closed;

IF Verification FAILS
THEN VulnerabilityState := Confirmed;

# ---------- VULNERABILITY IDENTIFIERS ----------
VulnerabilityIdentifier IDENTIFIES VulnerabilityRecord;

VulnerabilityRecord MAY_CONTAIN {
    Identifier,
    Description,
    AffectedProduct,
    AffectedVersion,
    Severity,
    References,
    Remediation
};

Identifier DOES_NOT_BY_ITSELF DetermineRisk;

# ---------- DEPENDENCY VULNERABILITY ----------
SoftwareComponent DEPENDS_ON Dependency;

IF Dependency HAS Vulnerability
AND VulnerableDependencyVersion USED
THEN ParentSoftware MAY_BE Affected;

DependencyUpdate MAY_REMEDIATE DependencyVulnerability;

# ---------- ZERO-DAY CONCEPT ----------
ZeroDayVulnerability :=
    Vulnerability WITH LimitedOrNoAvailableVendorRemediation
    AT RelevantTime;

ZeroDayStatus IS_TIME_DEPENDENT true;

# ---------- SEMANTIC REASONING ----------
IF Weakness EXISTS_IN Asset
AND Threat CAN_EXPLOIT Weakness
THEN VulnerabilityRisk EXISTS;

IF Vulnerability CONFIRMED
AND ExploitAvailable
THEN Exploitability := INCREASE;

IF Vulnerability AFFECTS InternetFacingAsset
THEN Exposure := INCREASE;

IF Vulnerability AFFECTS Authentication
THEN IdentityRisk := INCREASE;

IF Vulnerability AFFECTS Authorisation
THEN AccessControlRisk := INCREASE;

IF Vulnerability MITIGATED_BY EffectiveControl
THEN ResidualRisk := DECREASE;

IF Vulnerability PATCHED
AND Verification PASSES
THEN VulnerabilityState := Closed;

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE {
    "vulnerability" ~= "security weakness";
    "security flaw" ~= "vulnerability" WHEN context == cybersecurity;
    "software flaw" ~= "software vulnerability";
    "misconfiguration" ~= "configuration vulnerability" WHEN security_relevant;
    "vulnerability remediation" ~= "vulnerability correction";
    "compensating control" ~= "alternative mitigating control";
    "vulnerability scan" ~= "security vulnerability scan";
    "vulnerability assessment" ~= "security weakness assessment";
}

# ---------- QUERY FLOW ----------
QUERY(q) ->
    NORMALISE(q) ->
    IDENTIFY_VULNERABILITY(q) ->
    IDENTIFY_AFFECTED_ASSET(q) ->
    IDENTIFY_EXPLOITABILITY(q) ->
    IDENTIFY_SECURITY_IMPACT(q) ->
    IDENTIFY_TREATMENT(q) ->
    MAP_TO_ONTOLOGY(q) ->
    APPLY_REASONING(q) ->
    SCORE_CONFIDENCE(q) ->
    RETURN_RELEVANT_KNOWLEDGE;

# ---------- CONFIDENCE ----------
CONFIDENCE(assertion) :=
    weighted_mean(
        source_reliability,
        validation_evidence,
        technical_consistency,
        semantic_consistency,
        contextual_relevance
    );

CONFIDENCE >= 0.90 => HIGH;
CONFIDENCE >= 0.70 AND < 0.90 => MODERATE;
CONFIDENCE < 0.70 => REVIEW;

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION {
    primary_entity: Vulnerability;
    ontology: VulnerabilityOntology;
    parse_entities: true;
    parse_relationships: true;
    preserve_relationship_direction: true;
    resolve_semantic_equivalence: true;
    execute_reasoning_rules: true;
    apply_confidence_weighting: true;
    preserve_provenance: true;
}

# ---------- UPDATE MODEL ----------
UPDATE_MODEL {
    new_vulnerability:
        validate
        -> classify
        -> identify_affected_assets
        -> assess_exploitability
        -> assess_impact
        -> prioritise
        -> integrate;

    new_mitigation:
        identify_vulnerability
        -> classify_control
        -> evaluate_effectiveness
        -> update_residual_risk
        -> integrate;

    new_evidence:
        associate_vulnerability
        -> update_exploitability
        -> update_priority
        -> recompute_confidence
        -> integrate;

    remediation_revision:
        update_treatment_state
        -> verify_outcome
        -> recompute_risk
        -> regenerate_flow_hash;

    conflict:
        preserve_provenance
        -> compare_evidence
        -> adjust_confidence
        -> flag_review;
}

# ---------- FLOW HASH ----------
FLOW_HASH_INPUT :=
    DOMAIN
    + SUBDOMAIN
    + ONTOLOGY
    + VulnerabilityType
    + AffectedAsset
    + VulnerabilityState
    + VulnerabilityLifecycle
    + SecurityImpact
    + VulnerabilityTreatment
    + RELATIONSHIPS
    + SEMANTIC_REASONING
    + SEMANTIC_EQUIVALENCE
    + UPDATE_MODEL;

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT);

# ---------- TERMINAL ----------
VulnerabilityOntology
    -> DiscoverWeakness
    -> ValidateVulnerability
    -> IdentifyAffectedAssets
    -> ClassifyWeakness
    -> AssessExploitability
    -> AssessSecurityImpact
    -> DetermineRisk
    -> PrioritiseTreatment
    -> ApplyRemediationOrMitigation
    -> VerifyTreatment
    -> MonitorResidualRisk
    -> CloseValidatedRemediation;

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ