# Security Policy

This project implements the Eclipse Foundation Security Policy

* https://www.eclipse.org/security

## Supported Versions

These versions of OCL are currently being supported with security updates.

| Version            | Released   | Supported | 
| ------------------ | ---------- | --------- | 
| 2022-12 (6.18.0)   | 2022-12-11 | Yes       | 
| 2022-03 (6.17.1)   | 2022-03-16 | Yes       | 
| < 2021-12 (6.17.0) | 2021-12-08 | No        | 

## Reporting a Vulnerability

Please report vulnerabilities to the Eclipse Foundation Security Team at
security@eclipse.org

