Disallow timestamp field values outside RFC 3339 range #501
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
xref: google/cel-java#890
CEL enforces the RFC 3339 timestamp range (0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z).
Currently, explicit conversions enforce these bounds correctly. However, Protobuf message field values are an exception; they bypass this validation, allowing timestamps outside the valid range to enter the evaluation context.
google.protobuf.Timestamp{ seconds: -62135596801 }->timestamp("0000-12-31T23:59:59Z")Ingesting a Protobuf message with an out-of-range timestamp (e.g., seconds: -62135596801) results in a valid CEL timestamp object, but subsequent operations lead to inconsistent or undefined behavior: