Skip to content

validate proposal - #1362

Merged
HayimShaul merged 9 commits into
mainfrom
sec_1231_validate_signature
Mar 10, 2026
Merged

validate proposal#1362
HayimShaul merged 9 commits into
mainfrom
sec_1231_validate_signature

Conversation

@HayimShaul

@HayimShaul HayimShaul commented Feb 18, 2026

Copy link
Copy Markdown
Contributor

The new validateProposal() method verifies:

  1. The Fabric proposal structure (header, payload)
  2. That the creator (BankA's FSC node X.509 certificate) is a known MSP member: mspManager.IsValid(creator)
  3. That the proposal signature was made by that creator: verifier.Verify(proposalBytes, signature)

The fix closes a gap where the FSC endorser was not explicitly verifying that the Fabric proposal came from a legitimate, authenticated MSP member before endorsing it.

@HayimShaul HayimShaul self-assigned this Feb 18, 2026
@HayimShaul HayimShaul added bug Something isn't working security labels Feb 18, 2026
Hayim.Shaul@ibm.com added 2 commits February 18, 2026 10:40
Signed-off-by: Hayim.Shaul@ibm.com <hayimsha@fhe3.haifa.ibm.com>
Signed-off-by: Hayim.Shaul@ibm.com <hayimsha@fhe3.haifa.ibm.com>
@adecaro
adecaro force-pushed the sec_1231_validate_signature branch from 697d440 to a132bbf Compare February 18, 2026 09:40
@HayimShaul HayimShaul added this to the Q1/26 milestone Feb 18, 2026
@HayimShaul HayimShaul linked an issue Feb 18, 2026 that may be closed by this pull request
// Validate that the token actions in the request are consistent with the proposal
// The token request should match what's in the transient data
// This ensures the relationship between the action, read-write set, and token actions
if len(request.RequestRaw) == 0 {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is already checked in line 138

@adecaro

adecaro commented Feb 18, 2026

Copy link
Copy Markdown
Contributor

Hi @HayimShaul , thanks for submitting this PR.

Some context to help with the resolution of the Issue.
We are in the context where a Fabric client (running the FSC/FTS stack) is submitting a request for endorsement to a network node (the endorser) running the FSC/FTS stack as well.

In the Fabric protocol, the endorser is responsible to check that who signed the proposal is known to the network. Known to the network means that there is at least an MSP that successfully recognized the signature produced by the client.

So, we need to double check if FSC (@mbrandenburger FYI) allows us to perform such a check.

Hayim.Shaul@ibm.com added 2 commits February 18, 2026 09:59
Signed-off-by: Hayim.Shaul@ibm.com <hayimsha@fhe3.haifa.ibm.com>
Signed-off-by: Hayim.Shaul@ibm.com <hayimsha@fhe3.haifa.ibm.com>
@HayimShaul
HayimShaul marked this pull request as draft February 19, 2026 15:19
@HayimShaul
HayimShaul marked this pull request as draft February 19, 2026 15:19
Hayim.Shaul@ibm.com added 5 commits February 19, 2026 10:25
Signed-off-by: Hayim.Shaul@ibm.com <hayimsha@fhe3.haifa.ibm.com>
Signed-off-by: Hayim.Shaul@ibm.com <hayimsha@fhe3.haifa.ibm.com>
Signed-off-by: Hayim.Shaul@ibm.com <hayimsha@fhe3.haifa.ibm.com>
Signed-off-by: Hayim.Shaul@ibm.com <hayimsha@fhe3.haifa.ibm.com>
Signed-off-by: Hayim.Shaul@ibm.com <hayimsha@fhe3.haifa.ibm.com>

@mbrandenburger mbrandenburger left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

}, nil
}

func (r *RequestApprovalResponderView) validateProposal(ctx view.Context, request *Request) error {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is create functionality. We should come back to this function make is reusuable and provide it via FSC to any view.

@HayimShaul
HayimShaul marked this pull request as ready for review March 9, 2026 08:10
@HayimShaul
HayimShaul merged commit 1a2c8ec into main Mar 10, 2026
146 of 147 checks passed
@adecaro
adecaro deleted the sec_1231_validate_signature branch April 13, 2026 17:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working security

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RequestApprovalResponderView should validate proposal

4 participants