Skip to content

Conversation

emollier
Copy link
Contributor

This patch works around issue #467, also referenced as CVE-2023-37365, by implementing Yury Malkov's suggestion about capping the M value, coding the maximum number of outgoing connections in the graph, to a reasonable enough value of the order of 100000. For the record, the documentation indicates reasonable values for M range from 2 to 100, which are well within the cap; see ALGO_PARAMS.md.

The reproducer shown in issue #467 doesn't trigger the double free condition anymore after this change is applied, but completes successfully, although with the below warning popping up on purpose:

warning: M parameter exceeds 100000 which may lead to adverse effects.
         Cap to 100000 will be applied for the rest of the processing.

This patch works around issue nmslib#467, also referenced as CVE-2023-37365,
by implementing Yury Malkov's suggestion about capping the M value,
coding the maximum number of outgoing connections in the graph, to a
reasonable enough value of the order of 100000.  For the record, the
documentation indicates reasonable values for M range from 2 to 100,
which are well within the cap; see ALGO_PARAMS.md.

The reproducer shown in issue nmslib#467 doesn't trigger the double free
condition anymore after this change is applied, but completes
successfully, although with the below warning popping up on purpose:

	warning: M parameter exceeds 100000 which may lead to adverse effects.
	         Cap to 100000 will be applied for the rest of the processing.

Signed-off-by: Étienne Mollier <[email protected]>
@yurymalkov yurymalkov changed the base branch from master to develop July 18, 2023 23:32
@yurymalkov
Copy link
Member

Thank you for the PR!
On the second though it might make sense to limit it to a smaller number, like 10K (can you please decrease it?). I can hardly imagine someone would spend 40KB per item (40GB for 1M items).

per comment in merge request discussion.
@yurymalkov yurymalkov merged commit f6d170c into nmslib:develop Jul 20, 2023
@yurymalkov
Copy link
Member

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants