Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hnswalg.h: cap M to 100000 #484

Merged
merged 2 commits into from
Jul 20, 2023
Merged

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