Neither propose_certificate implementation calls issuer.require_auth() — in lib.rs the intended call is the orphaned stray statement at line 879 (outside the function), and multisig.rs:122-168 has none. Any account can create a PendingRequest naming an arbitrary issuer/proposer and pollute that issuer's and its signers' request indexes (IssuerRequestIds/SignerRequestIds) — an unauthenticated spam/DoS vector against paginated queries. Fix: add issuer.require_auth(); as the first line of both functions.
Neither
propose_certificateimplementation callsissuer.require_auth()— inlib.rsthe intended call is the orphaned stray statement at line 879 (outside the function), andmultisig.rs:122-168has none. Any account can create aPendingRequestnaming an arbitraryissuer/proposerand pollute that issuer's and its signers' request indexes (IssuerRequestIds/SignerRequestIds) — an unauthenticated spam/DoS vector against paginated queries. Fix: addissuer.require_auth();as the first line of both functions.