You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Recognize signed form-resource roles when classifying post-signing changes #3442
Legitimate form filling can be reported as disallowed when existing indirect form resources are rewritten in place after signing. This limitation predates PR #3440 and remains outside that security fix.
An existing indirect /AcroForm /DR dictionary or an indirect /AP dictionary of an ordinary, non-signature widget can be classified as kind::OTHER. The permission rules reject that kind at DocMDP P=2. Appearance streams also need consideration because they use the stream dispatch branch.
This is a conservative false rejection: the reported limitation rejects legitimate form filling rather than permitting prohibited changes.
Required work
Define which form-resource and appearance changes form-fill permission allows to rewrite in place.
Identify relevant objects from their roles in the signed revision, including indirect /AcroForm /DR resources and ordinary widget /AP objects.
Apply the role classification consistently to dictionaries and streams.
Classify policy-permitted changes as kind::FORM_FILL.
Preserve stricter classification for signed signature fields, signed signature widgets, and page-content resources. Do not let a new reference or relabeling turn a prohibited change into form fill.
Affected areas
crates/sign/src/pdf.rs: classify_changes, existing_change_kind, stream dispatch, signed-resource role collection, and permission checks.
Activity
M9 storytold#3442: what /DR names is reached; ordinary widgets may sh…
M9 storytold#3442: a form fill may rewrite existing field appearances…
M9 storytold#3442: what /DR names is reached; ordinary widgets may sh…
M9 storytold#3442: a form fill may rewrite existing field appearances…
M9 storytold#3442: what /DR names is reached; ordinary widgets may sh…
M9 storytold#3442: form-fill roles are keyed by object number, as eve…
M9 storytold#3442: an appearance the signed signature widget also dra…