Integer Overflow

NetzUnity und Informatik-forum wurden zusammengelegt. Eine entsprechende Ankündigung wird demnächst noch folgen. Für 2025 ist hier einiges geplant! Bei Fragen bitte per DM an Maximilian Rupp wenden.
  • hi,

    ich wollte fragen ob es in java möglich ist ein Integer overflow zu provozieren der dann zu sicherheits relevanten problem wird?

    thx a lot

    There is no right and wrong. There's only fun and boring. :ausheck:

  • hi,

    ich wollte fragen ob es in java möglich ist ein Integer overflow zu provozieren der dann zu sicherheits relevanten problem wird?

    thx a lot

    In Java gibt es bei Integers (= auch 'int's) einen Wraparound, d.h. Integer.MAX_VALUE + 1 == Integer.MIN_VALUE. Das kann sehr wohl zu Problemen führen, z.B. wenn du (hypothetisch) eine Liste mit Integer.MAX_VALUE (das sind 2^31-1, ungefähr 2 Mrd.) Elemente hast, ein Element dazu tust und size() aufrufst, und auf einmal ist das Ergebnis negativ.

    Wenn du "echte" Ganzzahlen brauchst, nimm BigInteger.

    100% trivial :thumb:

  • danke,

    aber is es auch möglich das man auf grund von diesem "fehler" z.b. eine buffer overflow/underflow verurssacht oder nur rechen fehler auftauchen.
    den ich glaub das ein buffer.... durch die jvm unterbunden wird? oder ihr ich mich?

    There is no right and wrong. There's only fun and boring. :ausheck:

  • aber is es auch möglich das man auf grund von diesem "fehler" z.b. eine buffer overflow/underflow verurssacht oder nur rechen fehler auftauchen.

    Integer Overflow != Buffer Overflow

    Bei einem Buffer Overflow hast du einen Speicherbereich, auf den du lesend/schreibend zugreifen willst. Dieser Bereich hat eine bestimmte Größe und du führst einen Lese-/Schreibzugriff aus, der auf Daten zugreift, die außerhalb dieses Bereiches liegen.

    Mir ist nicht bekannt, dass so etwas in Java möglich ist. Bugs in der Java VM sind aber nie ausgeschlossen.

  • Integer Overflow != Buffer Overflow

    Bei einem Buffer Overflow hast du einen Speicherbereich, auf den du lesend/schreibend zugreifen willst. Dieser Bereich hat eine bestimmte Größe und du führst einen Lese-/Schreibzugriff aus, der auf Daten zugreift, die außerhalb dieses Bereiches liegen.

    Mir ist nicht bekannt, dass so etwas in Java möglich ist. Bugs in der Java VM sind aber nie ausgeschlossen.

    ok das war mir eh klar
    danke für die bestätigung

    There is no right and wrong. There's only fun and boring. :ausheck:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!